!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 155
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X02デフォルトの名無しさん (ワッチョイ 6aad-48kr)
2020/05/11(月) 03:59:02.63ID:OH0s44mS0 1乙
>>1おつかれです
4デフォルトの名無しさん (アウアウエー Sae2-jgrQ)
2020/05/12(火) 10:12:47.53ID:4WwqN1hQa for(int i = 0, a = 2; i < 10; ++i) ...
同じ型じゃなくて
Cで
for(int i = 0, long a = 2; i < 10; ++i) ...
観たいに描く方法を教えて
同じ型じゃなくて
Cで
for(int i = 0, long a = 2; i < 10; ++i) ...
観たいに描く方法を教えて
5デフォルトの名無しさん (ワッチョイ bbca-BAqB)
2020/05/12(火) 10:50:24.38ID:0hJyWI8f06デフォルトの名無しさん (ワッチョイ 0b05-gIXh)
2020/05/13(水) 08:43:33.37ID:zPDRJ1n80 for文で++iって書くやつは過去の学習に縛られ惰性で生きている臆病者
7デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 08:47:34.01ID:OofdoMNm0 C++使いは前置がデフォ
8デフォルトの名無しさん (ワッチョイ 0b05-gIXh)
2020/05/13(水) 09:10:00.44ID:zPDRJ1n80 >>7
それを言っているんだ。 正しく自己を見つめ直せ
それを言っているんだ。 正しく自己を見つめ直せ
9デフォルトの名無しさん (ラクッペペ MM17-vl+H)
2020/05/13(水) 09:19:01.34ID:X+gtWrV6M 前置インクリメント VS 後置インクリメント
http://cpp.aquariuscode.com/preincriment-vs-postincriment
http://cpp.aquariuscode.com/preincriment-vs-postincriment
10デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 09:40:34.63ID:p9DOzuLsa 「値が使われる場合」
勝手に読み飛ばすな
勝手に読み飛ばすな
11デフォルトの名無しさん (ワントンキン MM9f-6ngS)
2020/05/13(水) 09:45:38.32ID:koSNYmhvM12デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 10:12:38.54ID:JcjM8CgX0 C++はテンプレートと演算子オーバーロードの関係で前置で良い場合は全て前置にする。
13デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 10:48:26.58ID:OofdoMNm014デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:00:41.30ID:JcjM8CgX0 禿げ(C++の神)から前置にしろと御神託があった。
SA: 禿4 pp.982
SA: 禿4 pp.982
15デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:01:29.69ID:JcjM8CgX0 いまどき小学生でも後置なんて使わんわ。
16デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:02:35.63ID:JcjM8CgX0 後置は幼女にのみ許される特殊な魔法。
17デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 11:17:23.83ID:p9DOzuLsa18デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:21:16.85ID:JcjM8CgX0 4回書き込んだだけで2位かよ。
ム板はこれから青森サーバーと呼ぶ。
ム板はこれから青森サーバーと呼ぶ。
19デフォルトの名無しさん (ワッチョイ 4f19-2UuV)
2020/05/13(水) 11:35:12.85ID:J8c0WcWw0 スレタイ
20デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 12:15:04.96ID:JcjM8CgX0 ムエタイがなんだって?
21デフォルトの名無しさん (ブーイモ MMe1-VBdI)
2020/05/13(水) 12:53:38.05ID:fSpTrz0hM 前置は不可分にしてしまった継続処理くらいにしか使いみちがない特殊な演算子だからのう
c言語的にどっちでもいい場合とりあえず前置にして論理バグのスルーを防ぐみたいなやり方あるかもしれない
c言語的にどっちでもいい場合とりあえず前置にして論理バグのスルーを防ぐみたいなやり方あるかもしれない
22デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/13(水) 13:02:44.65ID:fKaVxvtm0 後置の方が好きw
23デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 13:39:26.80ID:OofdoMNm0 語順が名詞動詞で気持ちいい
24デフォルトの名無しさん (アウアウエー Sa93-EFvI)
2020/05/13(水) 14:27:42.65ID:A7nM0+Dla for文の場合、インクリメントされるタイミングがブロックの末尾だから、後置の方が直感的な気がするね
25デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 14:48:22.25ID:oWyvBIrOa それは気のせい
26デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/13(水) 19:52:54.76ID:fKaVxvtm0 前置にしたときの言いようのない不安感
27デフォルトの名無しさん (ワッチョイ dbbd-wHYS)
2020/05/13(水) 21:32:12.94ID:+AdS1P590 C言語しか知らなくて、学びながらプログラムの作成にチャレンジしてるものです。
fopenについて教えてください。
fopen("wb")で開くとポインタ(ストリーム?)はファイルの先頭で上書きモード
fopen("ab")で開くとポインタ(ストリーム?)はファイルの最後で追記モード
ということを知りました。
既存ファイルを開き、先頭部分のデータの一部を上書き、且つ、末尾にデータを追加したいと考えています。
この場合は、どっちか片方で開いてfseekとかでポインタ移動してしまえば、 上書きも追加もできるのでしょうか?
それとも上書きしたあと、一旦fcloseをして開きなおさなければならないのでしょうか。
よろしくお願いいたします。
fopenについて教えてください。
fopen("wb")で開くとポインタ(ストリーム?)はファイルの先頭で上書きモード
fopen("ab")で開くとポインタ(ストリーム?)はファイルの最後で追記モード
ということを知りました。
既存ファイルを開き、先頭部分のデータの一部を上書き、且つ、末尾にデータを追加したいと考えています。
この場合は、どっちか片方で開いてfseekとかでポインタ移動してしまえば、 上書きも追加もできるのでしょうか?
それとも上書きしたあと、一旦fcloseをして開きなおさなければならないのでしょうか。
よろしくお願いいたします。
29デフォルトの名無しさん (ワッチョイ dbbd-wHYS)
2020/05/13(水) 22:07:53.87ID:+AdS1P59030デフォルトの名無しさん (ワッチョイ df61-XfUa)
2020/05/13(水) 22:08:13.59ID:Gt6y73ao031デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/14(木) 11:05:34.52ID:tvxDWcUoa >>27
"ab+"
"ab+"
32デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/14(木) 15:09:17.87ID:FSEZeoAj0 Ruby でやってみた
入力ファイル → 更新後
123456789 → abc456789xyz
filename = "test.dat"
# バイナリ読み書き両用
File.open( filename, "r+b" ) do |io|
io.write( "abc" )
io.seek( 0, IO::SEEK_END ) # ファイルの末尾から
io.write( "xyz" )
end
# 更新後のファイルを読み込む
File.open( filename, "rb" ) do |io|
puts io.read( nil )
end
入力ファイル → 更新後
123456789 → abc456789xyz
filename = "test.dat"
# バイナリ読み書き両用
File.open( filename, "r+b" ) do |io|
io.write( "abc" )
io.seek( 0, IO::SEEK_END ) # ファイルの末尾から
io.write( "xyz" )
end
# 更新後のファイルを読み込む
File.open( filename, "rb" ) do |io|
puts io.read( nil )
end
33デフォルトの名無しさん (ワッチョイ c1ca-OQUA)
2020/05/14(木) 19:58:19.22ID:9ipBs7pO0 ruby ならきれいに書けるという主張でもないようだけど、誤爆?
34デフォルトの名無しさん (ブーイモ MM81-yPYG)
2020/05/14(木) 20:18:44.56ID:XsLKEuv3M ム板で最も嫌われてる荒らしの一人。
懸命なruby布教のおかげで、rubyを覚えるとキチガイになるという通説を広めることには成功している。
懸命なruby布教のおかげで、rubyを覚えるとキチガイになるという通説を広めることには成功している。
35デフォルトの名無しさん (ワントンキン MM9f-3lOM)
2020/05/14(木) 21:06:40.98ID:4E7Wej8RM 感染者には触るな
>>30
>aは出力時はfseekが効かずに常に末尾に追加
これは驚きました!
https://ideone.com/RG43Xw
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
abcdefgABC
$
https://ideone.com/T8QqyL
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
ABCdefg
$
新しいことに気が付くようにしていただき、ありがとうございます!
>aは出力時はfseekが効かずに常に末尾に追加
これは驚きました!
https://ideone.com/RG43Xw
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
abcdefgABC
$
https://ideone.com/T8QqyL
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
ABCdefg
$
新しいことに気が付くようにしていただき、ありがとうございます!
37デフォルトの名無しさん (ラクッペペ MM17-0I9d)
2020/05/15(金) 22:12:47.57ID:drU906O6M まんま教えて貰ったのに「気が付くようにしていただき」なんだな
38デフォルトの名無しさん (ワントンキン MM9f-3lOM)
2020/05/16(土) 21:22:39.21ID:P7eChC70M この方はワザと炎上させる放火魔だからな
>>38
失礼しちゃいますね!
私が着火したことはほとんどなく、むしろ買ってに周りが発火している、という気がするのですが?
私が着火した、という証拠はありますか?あるというのなら URL で示してください!
失礼しちゃいますね!
私が着火したことはほとんどなく、むしろ買ってに周りが発火している、という気がするのですが?
私が着火した、という証拠はありますか?あるというのなら URL で示してください!
40デフォルトの名無しさん (ワッチョイ 2352-ri7+)
2020/05/16(土) 22:55:05.23ID:XDh9Q16+0 無自覚な分だけ尚更たちが悪い
41デフォルトの名無しさん (ワッチョイ 4f19-2UuV)
2020/05/16(土) 23:02:39.46ID:KaLdS6ES0 ruby布教者じゃなくてただのrubyアンチでしょ
布教なんかしてるように見えるの?
布教なんかしてるように見えるの?
42デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/16(土) 23:50:09.22ID:PLCktpMy0 定期的に書かないと、その名前すらみんな忘れ去るから
43デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:04:19.97ID:d4aDDKtR0 x[i][j]でx={0or1}を取る場合、全通りのx[i][j]を生成する方法はありますか?
44デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:06:02.61ID:d4aDDKtR0 >>43
x[i][j]を使った計算で全通りを比較したいです
x[i][j]を使った計算で全通りを比較したいです
45デフォルトの名無しさん (ワッチョイ 33da-7PPi)
2020/05/20(水) 18:28:24.79ID:2DX/1Ybo0 誰か質問の意味分かる人いる?
何がしたいのかさっぱり分からん
何がしたいのかさっぱり分からん
46デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:34:34.07ID:d4aDDKtR0 >>45
x[i][j]が変数の関数の最大値を求めたいんですが、全通りの計算をして最大値を求めたいです
x[i][j]が変数の関数の最大値を求めたいんですが、全通りの計算をして最大値を求めたいです
47デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:37:19.29ID:d4aDDKtR0 ΣΣx[i][j]を含む関数です
48デフォルトの名無しさん (ワッチョイ 9719-qwq+)
2020/05/20(水) 18:41:23.97ID:p2AYPvOI0 全部計算して計算結果を比較して最大値を求めれば良いのでは?
質問の意図が見えない…
iとjの2重ループで全部計算させて結果をresult[i][j]に入れる
その後、もっかい2重ループして最大値を探す
そのまんまだけど…
質問の意図が見えない…
iとjの2重ループで全部計算させて結果をresult[i][j]に入れる
その後、もっかい2重ループして最大値を探す
そのまんまだけど…
49デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:49:12.44ID:d4aDDKtR0 i,jのサイズが2の時x[i][j]の組み合わせは
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0
……って続くと思いますが、この配列の中身の全組み合わせを生成したいです
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0
……って続くと思いますが、この配列の中身の全組み合わせを生成したいです
50デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:52:54.48ID:d4aDDKtR0 あ、うえのΣの奴は間違いです
Σはありません
Σはありません
51デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:53:34.24ID:d4aDDKtR0 >>50
あ、あります、ごめんなさい。。
あ、あります、ごめんなさい。。
52デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/20(水) 19:02:07.61ID:B13UAgz80 >x[i][j]が変数の関数の最大値
これからして、意味が分からない
xの型や関数の仕様について、ヒントもないのか
これからして、意味が分からない
xの型や関数の仕様について、ヒントもないのか
53デフォルトの名無しさん (ワッチョイ 9719-qwq+)
2020/05/20(水) 19:19:09.61ID:p2AYPvOI0 びっくりするくらいわからんわw
フーリエ変換だとかアフィン変換だとかそういうなんか最重要な情報出し忘れてない?
フーリエ変換だとかアフィン変換だとかそういうなんか最重要な情報出し忘れてない?
54蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-cUCP)
2020/05/20(水) 19:37:46.43ID:RKh8Mgj0d 普通に二重forループ使え。問題文がおかしい。問題がその文章のままなら、たぶん学校か会社を間違えてる。
55デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2020/05/20(水) 19:56:18.69ID:WJVU+U120 >>49
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0
ここから値だけ取り出すとこうなる
0000
0001
0010
0011
0100
...
あとは簡単でただの二進数だから1重ループでその整数を1bitずつシフトしてマスクして代入すればいい
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0
ここから値だけ取り出すとこうなる
0000
0001
0010
0011
0100
...
あとは簡単でただの二進数だから1重ループでその整数を1bitずつシフトしてマスクして代入すればいい
56デフォルトの名無しさん (ワッチョイ 6301-f9J/)
2020/05/20(水) 20:02:39.84ID:7PkXr7ui0 添字x2 + 値で合計 3bit の組み合わせか
57デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/20(水) 20:03:34.53ID:Dfazl3Afa 何のために二次元にしてるのかイミフ
値も0と1しか入れないなら
もっと簡単な構造にすればいいのに
値も0と1しか入れないなら
もっと簡単な構造にすればいいのに
58デフォルトの名無しさん (ラクッペペ MMb6-Zfss)
2020/05/20(水) 20:40:35.00ID:O/hEDbqjM >>49
> ……って続くと思いますが、この配列の中身の全組み合わせを生成したいです
生成すればいい
何が問題なのか説明しないで問題丸投げは嫌がられるぞ
便利な標準関数一つで解決するとかを期待してるなら無理だ
> ……って続くと思いますが、この配列の中身の全組み合わせを生成したいです
生成すればいい
何が問題なのか説明しないで問題丸投げは嫌がられるぞ
便利な標準関数一つで解決するとかを期待してるなら無理だ
59デフォルトの名無しさん (ワッチョイ a37b-X2LZ)
2020/05/21(木) 05:39:15.31ID:vAblB4+m0 bool x[I_NUM][J_NUM]; とすると、x全体で取りうる値のパターン数は
2 ** (I_NUM*J_NUM) になるから、よほど小さな I_NUM, J_NUM でなきゃ
全通りを一度に生成して一覧表で返す方法は無理だよね。
添字 i, j について回る2重ループと、
特定の i, j における x[i][j] に 0, 1 を格納するループ、
合わせて3重のループで「ある場合のx」を生成して
その x で f(x) を計算して、最大値を更新、
3重ループが終わった時点で全パターンでの最大値が得られる、
て感じにするんじゃないかな。
>>46 の「x[i][j]が変数の関数」ってのが、
関数のパラメータとして2次元配列x[][]を取る、って理解だけど。
2 ** (I_NUM*J_NUM) になるから、よほど小さな I_NUM, J_NUM でなきゃ
全通りを一度に生成して一覧表で返す方法は無理だよね。
添字 i, j について回る2重ループと、
特定の i, j における x[i][j] に 0, 1 を格納するループ、
合わせて3重のループで「ある場合のx」を生成して
その x で f(x) を計算して、最大値を更新、
3重ループが終わった時点で全パターンでの最大値が得られる、
て感じにするんじゃないかな。
>>46 の「x[i][j]が変数の関数」ってのが、
関数のパラメータとして2次元配列x[][]を取る、って理解だけど。
60デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/21(木) 11:17:40.63ID:jfJI7kIT0 関数の引数として配列を渡す、って理解?
関数側は、「何それ食い物?」って答えそうだな
関数側は、「何それ食い物?」って答えそうだな
61デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/21(木) 11:23:40.86ID:lS0q7I070 組合せ最適化問題でしょ
組合せ変数を0,1で定義してる
組合せ変数を0,1で定義してる
62デフォルトの名無しさん (ワッチョイ 3302-9WPr)
2020/05/21(木) 11:56:11.97ID:J954h+Be0 Cの逆アセ対策の難読化って、ヘッダの関数シグネチャも変えた方がいいの?
63デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/21(木) 12:14:49.24ID:K4ggzWEW0 バイナリを暗号化して復号ローダーつけるとか
クラックするとき一番困るのがこれ
クラックするとき一番困るのがこれ
64デフォルトの名無しさん (ワッチョイ 3302-9WPr)
2020/05/21(木) 12:21:49.65ID:J954h+Be065デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/21(木) 16:13:44.63ID:K4ggzWEW0 関数のシグネチャはスタティックリンクすればバイナリには残らない
ダイナミックリンクにするとエクスポートテーブルに載ったりするけどね
ダイナミックリンクにするとエクスポートテーブルに載ったりするけどね
66デフォルトの名無しさん (ワッチョイ 8b01-CNUQ)
2020/05/21(木) 17:03:55.36ID:vAg7pclj0 セキュリティ周りは英語みるしかないね
日本人は忌避感が強すぎる
teratailとかでたまに質問してる人がいるけど
「悪用するひとがいるから回答できない」みたいな発言ばっかり
セキュリティ後進国ニッポン万歳
日本人は忌避感が強すぎる
teratailとかでたまに質問してる人がいるけど
「悪用するひとがいるから回答できない」みたいな発言ばっかり
セキュリティ後進国ニッポン万歳
67デフォルトの名無しさん (ワッチョイ 4ed2-crVl)
2020/05/21(木) 17:27:45.11ID:VFiGAn+W0 飲食店の場所取りに自分のカバンやスマホ置く国日本。
敷地の出入り口封鎖にプラスチックチェーン使う国日本。
敷地の出入り口封鎖にプラスチックチェーン使う国日本。
68デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 03:16:22.12ID:yrCNqXls0 ポインタ変数のバイト数って32ビット環境が4バイトで64ビット環境が8バイトですか?
69デフォルトの名無しさん (ワッチョイ 7af8-Rkb+)
2020/05/22(金) 07:18:42.71ID:roLyvqPu0 >>65
夢で見たの?
夢で見たの?
70デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 07:48:33.62ID:QdrkGYuD071デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:25:04.59ID:yrCNqXls0 >>70
コンパイラによるんですか
コンパイラによるんですか
72デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 08:32:57.86ID:QdrkGYuD073デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:50:54.09ID:yrCNqXls074デフォルトの名無しさん (ワッチョイ 9a02-crVl)
2020/05/22(金) 09:09:56.75ID:VBq+8Qqi0 ただし実際の実装では>>68のようになってることが多い。
まるで大井川です。
まるで大井川です。
75デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 09:40:58.83ID:+zt+hei00 10回に1回くらいsegmentation faultが起こる原因って何だか分かりますか?
76デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:12:13.45ID:QdrkGYuD0 初期化し忘れによる不定
77デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:15:38.92ID:QdrkGYuD0 再帰が深すぎ
境界値でのテストをしていない
境界値でのテストをしていない
78デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 10:15:53.42ID:+zt+hei00 >>76
宣言した、配列や変数に全部初期値を入れた方が良いということでしょうか?
宣言した、配列や変数に全部初期値を入れた方が良いということでしょうか?
79デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/22(金) 10:44:52.26ID:yrPx0C2WM >>78
配列や変数に値を入れるより先に値を読むような処理があるなら、その値は不定になるよ。
不定じゃ困るなら初期化しなければならないし、処理の流れ上読むより先に必ず値を入れることになるなら必ずしも初期化は要らない。
配列や変数に値を入れるより先に値を読むような処理があるなら、その値は不定になるよ。
不定じゃ困るなら初期化しなければならないし、処理の流れ上読むより先に必ず値を入れることになるなら必ずしも初期化は要らない。
80デフォルトの名無しさん (ワッチョイ 275f-tqmx)
2020/05/22(金) 10:46:08.14ID:cP0YviQU0 無効な値とかを決めて、全部初期値としてセットしておいたほうがバグは見つけやすくなるかと
81デフォルトの名無しさん (ワッチョイ 1bf9-f9J/)
2020/05/22(金) 10:46:44.80ID:RnFaArUl0 全部初期化した方がいいといえばいい、というか…
0とかのデフォ値でいいならそうだよ、というか…
変数に代入し忘れのバグって、変数に代入すべき所でしてないのが原因なワケで
それを直さないとバグったままだよ
0とかのデフォ値でいいならそうだよ、というか…
変数に代入し忘れのバグって、変数に代入すべき所でしてないのが原因なワケで
それを直さないとバグったままだよ
82デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 20:37:04.55ID:bFQm7Q/P0 フフフフフフフフフフフフフフフフ
83デフォルトの名無しさん (スフッ Sdba-K7uz)
2020/05/22(金) 21:35:43.84ID:zmnGp56md Cでディクショナリ型のデータ構造が使いたいんだけど何かいい擬似的な仕組みとかないかな
84デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2020/05/22(金) 21:37:08.62ID:Czx4JK5B0 深く考えずそこいらのハッシュのコードをコピペして終わり
85デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 22:21:53.66ID:roLyvqPu0 配列に入れてqsortしてbsearch
86デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 22:38:56.16ID:bFQm7Q/P0 GNU汚染されても構わないなら
87デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 23:06:54.16ID:roLyvqPu0 >>86
意味不明
意味不明
88デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:45:14.96ID:d49u2Ywha89デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:46:10.15ID:d49u2Ywha >>87
ロリコンGNU汚染は深刻
ロリコンGNU汚染は深刻
90デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:04:52.92ID:qSr4WIyQa Cの初心者質問スレはここでいいのかな?
91デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:09:46.32ID:qSr4WIyQa 【問題】最大値と最小値を順番に表示するプログラムを作成したい。以下のプログラムに適切なコードを追加して完成させよ。
【プログラム】
int main(void)
{
double a, b, c, max, min;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
/* ここにコードを追加 */
if(max<b) {
max = b;
}
if(max<c) {
max = c;
}
if(min>b) {
min = b;
}
if(min>c) {
min = c;
}
printf("%f\n%f\n", max, min);
return 0;
}
【プログラム】
int main(void)
{
double a, b, c, max, min;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
/* ここにコードを追加 */
if(max<b) {
max = b;
}
if(max<c) {
max = c;
}
if(min>b) {
min = b;
}
if(min>c) {
min = c;
}
printf("%f\n%f\n", max, min);
return 0;
}
92デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:10:27.38ID:qSr4WIyQa 【僕の解答】
if(max<a) {
max = a;
}
if(min>a) {
min = a;
}
を追加したのですが、上手くいきません。
どこが間違っているのでしょうか??
if(max<a) {
max = a;
}
if(min>a) {
min = a;
}
を追加したのですが、上手くいきません。
どこが間違っているのでしょうか??
93デフォルトの名無しさん (ワッチョイ 2b61-1BKT)
2020/05/27(水) 15:28:26.21ID:7WWgMS5U0 初期化されてないmax,minと比較をしたら結果は不確定になってしまうでしょ
この場合比較自体が不要、代入するだけでいい
この場合比較自体が不要、代入するだけでいい
94デフォルトの名無しさん (アウアウウー Sac5-TOJA)
2020/05/27(水) 15:30:27.76ID:l0VRR152a 宿題か・・・
宿題は宿題用のスレがあるので次回からはそちらへ。
宿題は宿題用のスレがあるので次回からはそちらへ。
95デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:42:06.32ID:qSr4WIyQa >>94
そのスレってどこにありますか?
そのスレってどこにありますか?
96デフォルトの名無しさん (ワッチョイ 2b63-eh4p)
2020/05/27(水) 15:51:45.80ID:YJvjJLLF0 >>95
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456911928/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456647534/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456911928/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456647534/
97デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/27(水) 16:09:07.31ID:9+VJvnQZ0 170代目宿題スレッドって2つ生きてるんだ。片方しか見てなかったわ。
両方ともさほど繁盛してないみたいだけど。
最大値、最小値を入力されたデータの一つで仮に設定する手法か。
Cに限らない話だね。アルゴリズムって言うほど大袈裟でもないけど。
両方ともさほど繁盛してないみたいだけど。
最大値、最小値を入力されたデータの一つで仮に設定する手法か。
Cに限らない話だね。アルゴリズムって言うほど大袈裟でもないけど。
>>97
5 年ほど前は大繁盛だったんですけど、最近は授業でも C は取り上げられなくなったんですかね?
5 年ほど前は大繁盛だったんですけど、最近は授業でも C は取り上げられなくなったんですかね?
99デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/27(水) 23:36:23.85ID:3VgZbS/t0 >>98
QZのせいで糞スレ化したからだろう
QZのせいで糞スレ化したからだろう
100デフォルトの名無しさん (ワッチョイ c163-moxv)
2020/05/27(水) 23:44:18.88ID:4XHC6/z30 退学になったストーカー、今どうしているんだろう
101デフォルトの名無しさん (ワッチョイ 2b2c-HO12)
2020/05/28(木) 02:29:00.68ID:MEC8WK3T0 Ruby では、
a = ARGV[ 0 ].to_f; b = ARGV[ 1 ].to_f; c = ARGV[ 2 ].to_f
# ここにコードを追加
max = a; min = a
max = b if max < b
max = c if max < c
min = b if min > b
min = c if min > c
p min, max
a = ARGV[ 0 ].to_f; b = ARGV[ 1 ].to_f; c = ARGV[ 2 ].to_f
# ここにコードを追加
max = a; min = a
max = b if max < b
max = c if max < c
min = b if min > b
min = c if min > c
p min, max
102デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/28(木) 11:35:50.55ID:vYrFHFhya >>99
+1
+1
103デフォルトの名無しさん (ワッチョイ 51b7-hNtB)
2020/05/28(木) 14:39:45.45ID:6YeNiPZ80 自分ならmax,minに無条件に値を入れないで
if (a < b)
{
min = a;
max = b;
}else{
min = b;
max = a;
}
if (min > c) min = c;
if (max < c) max = c;
にする。
if (a < b)
{
min = a;
max = b;
}else{
min = b;
max = a;
}
if (min > c) min = c;
if (max < c) max = c;
にする。
104デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/28(木) 15:37:06.84ID:z3rIKeXH0 もともと穴埋め問題なのに穴以外のところを変更しちゃダメだろう
105デフォルトの名無しさん (ワッチョイ b95f-bxq0)
2020/05/28(木) 19:53:34.78ID:DxwkdxOL0 Makefileを作るのは今もモダンなやり方でしょうか?
>>105
モダンな方法は言語によってもいろいろあるようですが(例えばネットに接続してライブラリの最新版を fetch してくるものとか)、でも、私は make から離れなれないですね…
モダンな方法は言語によってもいろいろあるようですが(例えばネットに接続してライブラリの最新版を fetch してくるものとか)、でも、私は make から離れなれないですね…
107デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 03:43:32.77ID:m+W9okcT0 今はninjaだかがモダンらしい
使ったことはないが
使ったことはないが
108デフォルトの名無しさん (ワッチョイ 2b10-IvHb)
2020/05/29(金) 04:13:16.10ID:NMA5faiP0 MPD(Music Player Daemon)のmakeがninjaに変わって、ビルドに泣いた。
mesonというconfigure相当のモノに、configureで指定していたオプションが無くて...
日本語命名品は凶悪だわ。MIRAIとかAnna-senpaiとか。
mesonというconfigure相当のモノに、configureで指定していたオプションが無くて...
日本語命名品は凶悪だわ。MIRAIとかAnna-senpaiとか。
109デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/29(金) 12:01:15.97ID:kNF9S1Cua >>105
C(gcc/cl)でもC++(g++/cl)でもC#(csc)でも現役でmakefile使ってる
C(gcc/cl)でもC++(g++/cl)でもC#(csc)でも現役でmakefile使ってる
110デフォルトの名無しさん (ワッチョイ d3f8-TLlO)
2020/05/29(金) 12:14:09.12ID:gj3l07yG0 モダンかと言われると微妙だけど今ならcmakeでMakefile生成でしょ
111デフォルトの名無しさん (ワッチョイ 012c-HO12)
2020/05/29(金) 12:47:09.33ID:1C1s9P850 Ruby の、rake, thor みたいな、タスクランナーでも使えば?
112デフォルトの名無しさん (ワッチョイ 9302-SpyH)
2020/05/29(金) 13:35:17.59ID:XdiR54Y60 俺もCMake愛用している
113デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 16:31:04.57ID:6E0tm9y70 テキストエディタほどでないにせよ、ビルドツールも喧嘩の種になりそうかな。
大勢の人が集団で開発とか、クロスプラットフォーム向けに配るとかでなきゃ、
好きにすりゃいい気もするのう。
個人的にはmakeが大好きで万能バッチファイル的に使うけど、
俺自身決してモダンボーイじゃないから。
大勢の人が集団で開発とか、クロスプラットフォーム向けに配るとかでなきゃ、
好きにすりゃいい気もするのう。
個人的にはmakeが大好きで万能バッチファイル的に使うけど、
俺自身決してモダンボーイじゃないから。
114デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 16:58:41.27ID:m+W9okcT0 makeってあれサブルーチンみたいなことするにはどうすりゃええの
115デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/05/29(金) 17:27:36.35ID:eRAtimlp0 gcc流のオプションをclのオプションに変換してclを呼び出すラッパーある?
116デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 19:15:47.50ID:6E0tm9y70 >>114 本当に単純なサブルーチン呼び出し風なら
サブルーチンに相当するターゲットを順番に依存対象にしてこんな感じ。
.PHONY: main sub1 sub2
main: sub1 sub2
@echo "and now, going main"
sub1:
@echo "this is sub1"
sub2:
@echo "I'm sub2"
サブルーチンに相当するターゲットを順番に依存対象にしてこんな感じ。
.PHONY: main sub1 sub2
main: sub1 sub2
@echo "and now, going main"
sub1:
@echo "this is sub1"
sub2:
@echo "I'm sub2"
>>115
それ需要がありそうですね…
それ需要がありそうですね…
118デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/30(土) 01:03:07.50ID:fWBi0L4D0119デフォルトの名無しさん (ラクッペペ MM4b-eKGp)
2020/06/01(月) 09:59:41.94ID:ruvyvZ5aM てす
120デフォルトの名無しさん (ワッチョイ d344-8DLB)
2020/06/01(月) 23:23:12.08ID:GR8q4A/e0 グローバル変数で、
char A[4], B[4];
と宣言したら、メモリ中でAのすぐ隣にBが来ることは保証されているんですか?
例えば、Aはインデックスが0から3までですが、この範囲を超えてA[4]に
アクセスしたら、それはB[0]にアクセスしたことになるんですか?
char A[4], B[4];
と宣言したら、メモリ中でAのすぐ隣にBが来ることは保証されているんですか?
例えば、Aはインデックスが0から3までですが、この範囲を超えてA[4]に
アクセスしたら、それはB[0]にアクセスしたことになるんですか?
121デフォルトの名無しさん (ワッチョイ 4101-+GDy)
2020/06/01(月) 23:30:59.93ID:K8qQM5W10 環境依存でどっちに配置されるかの保証はなかったような
122デフォルトの名無しさん (ワッチョイ 5347-moxv)
2020/06/01(月) 23:46:04.68ID:idPskxLG0 >>120
範囲を超えたアクセスは未定義動作。順序どころか隣接する保証もないよ。
範囲を超えたアクセスは未定義動作。順序どころか隣接する保証もないよ。
123デフォルトの名無しさん (アウアウエー Sa23-hvra)
2020/06/02(火) 00:09:21.50ID:xK3L40dza 自分で保証するしかないよ
124デフォルトの名無しさん (ワッチョイ 41ca-buPU)
2020/06/02(火) 07:03:39.55ID:0laQbiBy0 >>120
順序や隣接を保証したいなら struct を使うとか
順序や隣接を保証したいなら struct を使うとか
125デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 09:08:00.49ID:6Rv/5LNl0 その場合もパディングについては知っておかないと。
126デフォルトの名無しさん (スプッッ Sdf3-JkuK)
2020/06/02(火) 09:46:07.68ID:t1gowtwYd 荒井さんがケツに詰め物してくるねんで
127デフォルトの名無しさん (ブーイモ MMab-S7K8)
2020/06/02(火) 10:04:47.98ID:OudFIOlRM char A[8];
char *const B=&A[4];
でいいじゃんなにが問題なの?
char *const B=&A[4];
でいいじゃんなにが問題なの?
128デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 10:15:18.47ID:6Rv/5LNl0129デフォルトの名無しさん (ワントンキン MMd3-IvHb)
2020/06/02(火) 12:31:18.57ID:9wo5PvtnM 質問者は隣接して欲しくないのだろう。
130デフォルトの名無しさん (ワイーワ2 FFa3-1zQY)
2020/06/02(火) 13:00:39.48ID:nij7NU0AF ゴールポストが動き始めましたω
131デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:13:15.29ID:LaW3uxXL0 × 隣接する前提で突破させてアクセスしたい
△ どうも B[0] の値がいつのまにか変わっちゃってるんだけど A[]で突破して書き込んだ可能性をチェックしたほうがいい?
△ どうも B[0] の値がいつのまにか変わっちゃってるんだけど A[]で突破して書き込んだ可能性をチェックしたほうがいい?
132デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:23:37.03ID:iAkpbabl0 配列操作の関数とかで
void func(int data[], int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
みたいな関数って
void func(int *data, int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
って書いても動くけど、何が違うのですか?
書き方違うだけでまったく同じ?
void func(int data[], int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
みたいな関数って
void func(int *data, int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
って書いても動くけど、何が違うのですか?
書き方違うだけでまったく同じ?
133デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:27:57.83ID:LaW3uxXL0 文法上は違いがなく同じ どっちで書いてもいい
* ではなく [ ] をあえて使って配列ですよと強調することはある
* ではなく [ ] をあえて使って配列ですよと強調することはある
134デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:28:49.67ID:iAkpbabl0 ありがとう
135デフォルトの名無しさん (JP 0Ha3-7GQX)
2020/06/02(火) 14:06:09.30ID:G0GLY7QlH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
136デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/06/02(火) 18:13:46.15ID:eZHppilZ0 どう間違ってもsizeof data == sizeof(int *)にしかならんものなのに
白々しくモロバレな嘘を書くことはあるね、確かに
白々しくモロバレな嘘を書くことはあるね、確かに
>>127
うまいですねー
うまいですねー
138デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:03:39.06ID:wbZbutmLF まじめにやると
union{
char A[8];
struct{
char A[4];
char B[4];
}S;
}U;
union{
char A[8];
struct{
char A[4];
char B[4];
}S;
}U;
139デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:11:25.16ID:wbZbutmLF 蛇足でついでにテスト
http://codepad.org/TOo6U3jn
http://codepad.org/TOo6U3jn
140デフォルトの名無しさん (ワッチョイ 6af8-T3vA)
2020/06/03(水) 10:41:18.77ID:OT4MJN130 #pragma packや__attribute__((packed))は使わなくてよいの?
141デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/03(水) 15:06:51.95ID:sI0nXA5M0 パディングのせいで上手くいくとは限らない(というが大抵の場合うまくいかない)
ってのは>>125が指摘してるのな
ってのは>>125が指摘してるのな
142デフォルトの名無しさん (ワッチョイ 99ad-8EEL)
2020/06/03(水) 23:54:54.10ID:s2kYPv500 C言語は得意だぞ笑
何でも聞いてくれ!
何でも聞いてくれ!
143デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 00:21:55.42ID:0jbM0LQ+0 スリーサイズを
144デフォルトの名無しさん (ワッチョイ c146-JlRw)
2020/06/04(木) 04:52:41.39ID:+EhwVkpj0 char、short、long
145デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/04(木) 08:57:07.42ID:Cmh9rlbL0 >>138
それって言語仕様としてはうまくいくと保障できる?
それって言語仕様としてはうまくいくと保障できる?
146デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/04(木) 10:08:24.56ID:85VTz4/e0 構造体はメンバの配置順を保証し、共用体は同一アドレスから開始を保証する
charなので境界調整要求が1でパディングに邪魔されることもない
charなので境界調整要求が1でパディングに邪魔されることもない
147デフォルトの名無しさん (ラクッペペ MMde-uikQ)
2020/06/04(木) 10:45:21.20ID:TPmiBK6gM charだからといってバイト境界が1になるという保証は無い
148デフォルトの名無しさん (オイコラミネオ MM65-I6IY)
2020/06/04(木) 10:53:00.07ID:Rfl/DppQM 隣接するcharの間にパディングされるとしたらどんな場合なの?
149デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 11:06:13.36ID:fpPgT8jn0 俺ってC言語得意だからいっぱい質問してくれると嬉しいな
150デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:20:23.30ID:KwTRcPMk0 頼もしいなヲイ。
151デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 11:21:45.55ID:0jbM0LQ+0 「愛してる」ってC言語で言ってみて
152デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:41:06.99ID:KwTRcPMk0 ++i;
154デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:23:12.56ID:fpPgT8jn0 charは絶対1バイトになるよな
それともOSのページングの話
それともOSのページングの話
155デフォルトの名無しさん (ワッチョイ 35e6-uikQ)
2020/06/04(木) 12:25:55.50ID:c/bZjxGo0 charでダメならint8_tとかじゃダメなの?
156デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:27:08.24ID:fpPgT8jn0 普通にPCで応用ソフト作ってるときにアライメントとか意識したことないわ
157デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:28:04.94ID:fpPgT8jn0 ここのスレってもしかして組み込み連中が多いのか!?
158デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:35:48.21ID:fpPgT8jn0 PCは4バイトでやりとりするからint型が一番速いというのは聞いたことがあるが、ソースコードの可読性を落としてまでintで宣言しないだろ
優先順位:可読性>>>>型による実行速度の改善
優先順位:可読性>>>>型による実行速度の改善
159デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/04(木) 14:14:51.58ID:3M18ri9Na >>148
4バイト、8バイト、16バイト境界などで配置する処理系があるかもしれない
4バイト、8バイト、16バイト境界などで配置する処理系があるかもしれない
160デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/04(木) 14:19:05.16ID:86obmMrj0 Cは白飯
161デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/04(木) 14:21:50.06ID:cftkhVEH0 なんか関わっちゃいけないやつが湧いてるな…。
162デフォルトの名無しさん (ワッチョイ a105-uikQ)
2020/06/04(木) 14:34:04.88ID:797dYlrL0 >>158
32ビットCPUなら4バイト、64ビットCPUなら8バイトずつ読む
のがCPUさんにだいたい優しいんよ
ていうかワード境界またぐと例外ぶっこくCPUとかあるし
でもって例外処理で残りを読むとかで超遅くなるとかさー
32ビットCPUなら4バイト、64ビットCPUなら8バイトずつ読む
のがCPUさんにだいたい優しいんよ
ていうかワード境界またぐと例外ぶっこくCPUとかあるし
でもって例外処理で残りを読むとかで超遅くなるとかさー
163デフォルトの名無しさん (ワッチョイ 8669-INBt)
2020/06/04(木) 14:42:43.40ID:xW4yRJob0 struct は アライメント1/4/8 で半端な部分はパディングする
アライメント4 で宣言順に配置する処理系
struct A1 {
char a[3];
char b[6];
int c;
};
は
a 3バイトの後 1バイトパディングを挟んで
b 6バイト 2バイトパディングを挟んで
c sizeof(int) バイト
こうなる
union の中の struct だけは アライメント1 というのもない
union {
char x[100];
struct A1 a;
} foo;
struct A1 b;
foo.a と b が異なるメモリアクセスになっちまうもの
アライメント4 で宣言順に配置する処理系
struct A1 {
char a[3];
char b[6];
int c;
};
は
a 3バイトの後 1バイトパディングを挟んで
b 6バイト 2バイトパディングを挟んで
c sizeof(int) バイト
こうなる
union の中の struct だけは アライメント1 というのもない
union {
char x[100];
struct A1 a;
} foo;
struct A1 b;
foo.a と b が異なるメモリアクセスになっちまうもの
164デフォルトの名無しさん (ワッチョイ 8669-INBt)
2020/06/04(木) 14:49:40.87ID:xW4yRJob0 × struct は アライメント1/4/8 で半端な部分はパディングする
アライメント4 で宣言順に配置する処理系
○ struct は アライメント1/4/8 で半端な部分はパディングするという処理系で
アライメント4 配置する場合
言語仕様上
構造体のメンバ間は連続したメモリ空間上にあることは保障してるけど
スキマなく詰めるとかのメンバの詰め方に関する規定は無いんでなかった?
アライメント4 で宣言順に配置する処理系
○ struct は アライメント1/4/8 で半端な部分はパディングするという処理系で
アライメント4 配置する場合
言語仕様上
構造体のメンバ間は連続したメモリ空間上にあることは保障してるけど
スキマなく詰めるとかのメンバの詰め方に関する規定は無いんでなかった?
165デフォルトの名無しさん (ワッチョイ 6a85-uikQ)
2020/06/04(木) 18:39:41.01ID:Lshf4FuN0 昔コンシューマのセーブデータ解析してたら3バイトづつのデータが並んでて構造体定義に悩んだことあった。
166デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 21:07:13.12ID:fpPgT8jn0 Cユーザーってやっぱ変わった奴多いなー
ガチムチの土方って感じがするわ
ガチムチの土方って感じがするわ
167デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 22:35:24.51ID:0jbM0LQ+0 そうか?以前の職場は若い女性が多かったけどな
168デフォルトの名無しさん (ワッチョイ 0ac5-Alfg)
2020/06/04(木) 23:08:18.32ID:5j21ZXn/0 ボイン多(ポインタ)
なんちゃってガハハハハハハ!
なんちゃってガハハハハハハ!
169デフォルトの名無しさん (ワッチョイ 2d7b-W1iy)
2020/06/05(金) 05:07:50.58ID:EL/RRtNB0170デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/05(金) 07:22:42.00ID:Ic9kRMZ70 FAT12 みたいな変態パッキングもあるから、24bit のフィールドなんてマシな方。
171デフォルトの名無しさん (スップ Sdea-EE9n)
2020/06/05(金) 12:15:43.11ID:U7lTPDC9d 8bitCPUなら24bitはごく普通
ファミコンのデータ解析したこと無い?
ファミコンのデータ解析したこと無い?
172デフォルトの名無しさん (ワッチョイ ca02-VRPW)
2020/06/05(金) 12:17:01.16ID:QzIlaRt/0 何言ってんだこのバカ
173デフォルトの名無しさん (スップ Sdea-EE9n)
2020/06/05(金) 12:17:22.45ID:U7lTPDC9d 24bit WAVファイルも3バイトずつ
フルカラーBMPも3バイトずつ
フルカラーBMPも3バイトずつ
174デフォルトの名無しさん (ワッチョイ a105-uikQ)
2020/06/05(金) 13:24:39.84ID:BHpegeI70175デフォルトの名無しさん (ワッチョイ 6d01-Alfg)
2020/06/05(金) 18:15:42.07ID:J4O8wyAo0 Base64エンコードとかbit合成するですね
176デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/05(金) 23:17:25.55ID:HYnTNcDC0177デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/05(金) 23:18:44.38ID:nyToGy4H0 1バイトの定義次第
178デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/06(土) 01:05:56.74ID:WvOhFHQn0 確か1オクテットといったら8ビットだが1バイトは8ビットとは限らないんだよな。
179デフォルトの名無しさん (ワッチョイ 99ad-tS+g)
2020/06/06(土) 01:11:50.49ID:P2ph+/530 おまいらほんとガチムチだな
その才能をもっと色んなジャンルに活かせよ
ゲーム解析するぐらいならCで書かれたPrologのインタプリタのソース読む方が社会的に有意義だし、カッコいいぞ
いいぞPrologは。アルゴリズム特化型言語だ
その才能をもっと色んなジャンルに活かせよ
ゲーム解析するぐらいならCで書かれたPrologのインタプリタのソース読む方が社会的に有意義だし、カッコいいぞ
いいぞPrologは。アルゴリズム特化型言語だ
180デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/06(土) 01:13:17.96ID:gRHlLLnD0 漢なら、マシン語
181デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 01:21:43.95ID:Lxl6lnvAa 8進数は、1バイトが6ビットだったことがあってこそなんだろうね
182デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 01:24:08.28ID:Lxl6lnvAa おいちゃんの K&Rの表紙は、6ビットの紙テープで描かれた Cという文字だな
183デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/06(土) 03:35:05.84ID:xnAk4BrC0 今の本?(写真3つ目)は鑽孔テープじゃないのか。
dictionarymay.cocolog-nifty.com/blog/2012/08/c-f754.html
dictionarymay.cocolog-nifty.com/blog/2012/08/c-f754.html
184デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/06(土) 06:53:02.07ID:WvOhFHQn0 英語では数は3桁区切りだったもんだからつい2進数も3桁毎に区切って考えてしまったのではないかな?
185デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/06(土) 08:12:55.01ID:EzIfGGLg0 流石にそれは無理があるw
>>181が言うように1バイトと言うか1文字が6bitで良かったから3bit x 2で管理するのが都合が良かった
なので当時のコンピュータには18bitとか36bitマシンとかもあった
その流れで16bitマシンでもパネルとかは3bit区切りになってたりする
https://www.hpmuseum.net/images/2108A-37.jpg
>>181が言うように1バイトと言うか1文字が6bitで良かったから3bit x 2で管理するのが都合が良かった
なので当時のコンピュータには18bitとか36bitマシンとかもあった
その流れで16bitマシンでもパネルとかは3bit区切りになってたりする
https://www.hpmuseum.net/images/2108A-37.jpg
186デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 08:18:49.66ID:/D6kD8C1M ABCDEFを数字として扱うには時代が早すぎたんだよ
187デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/06(土) 08:31:19.90ID:maGrK2WM0 コンピュータの黎明期は、時間や角度の単位のようにいろんな約数がある方が
応用が効くと思われていたらしい。
応用が効くと思われていたらしい。
188デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/06(土) 08:56:36.69ID:sv96bxFv0 にしん御殿を建てた漁師もいた。
189デフォルトの名無しさん (ワッチョイ 2a52-gmWH)
2020/06/06(土) 09:02:46.57ID:AQK/o2mm0 >>181
N進数自体は論理的にはNがどんな正の正数でも可能だけど、C言語的に文法上8進数が記述できるのはUNIX系のファイルシステムのパーミッションとかで使いやすいからとかでないかな。
N進数自体は論理的にはNがどんな正の正数でも可能だけど、C言語的に文法上8進数が記述できるのはUNIX系のファイルシステムのパーミッションとかで使いやすいからとかでないかな。
190デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 09:03:53.79ID:HDxtjsAHM C言語の整数リテラル0は8進数
191デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 09:54:16.10ID:URn6wcZIM c言語で9ビットのコンピュータ使ったことあるが、頭が狂いそうになったよ
192デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 10:14:23.16ID:df/Ddbgs0 これまで常識だと思っていたことをあっさり否定されてしまうから?
193デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 11:47:23.01ID:7ywXVWZR0194デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:02:30.70ID:iC9mu8GeM 組み込みだと4bitマイコンあたりはまだ現役で使われてそうだな
C言語処理系があるかどうかは知らんけど
C言語処理系があるかどうかは知らんけど
195デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:06:28.77ID:iC9mu8GeM196デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 14:08:17.65ID:7ywXVWZR0 >>194
Cがあったとしても char の最少サイズは 8bit が保証されてるから、Cを使うとかえって面倒そう。
Cがあったとしても char の最少サイズは 8bit が保証されてるから、Cを使うとかえって面倒そう。
197デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 14:13:59.16ID:URn6wcZIM198デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 14:32:33.46ID:3ChBl+cga 0377=255、0777=-1 じゃない?
199デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 14:38:42.25ID:df/Ddbgs0 DEC PDP-7は18bitマシンだったから
200デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/06(土) 16:36:30.29ID:75+7y3pj0 アセンブラで別のCPU勉強し直すと変に前のCPUの知識が足引っ張って戸惑う。
Z80 → x86
セグメント?概念は理解できた。記述方法よくわからん。
repって何?
byte prt ? word ptr? あ、データサイズ指定必要なんだ。
→とあるスパコンCPU
え?オペランド3つ?
あ、0レジスタは聞いたことある。
スタックレジタ無し?汎用レジスタで代用?
Z80 → x86
セグメント?概念は理解できた。記述方法よくわからん。
repって何?
byte prt ? word ptr? あ、データサイズ指定必要なんだ。
→とあるスパコンCPU
え?オペランド3つ?
あ、0レジスタは聞いたことある。
スタックレジタ無し?汎用レジスタで代用?
201デフォルトの名無しさん (ワッチョイ caad-wk5h)
2020/06/06(土) 17:08:16.80ID:WvOhFHQn0 こんなまとめ記事のようなものを発見した。
1バイトが8bitに定まったのは2008年 - Qiita
https://qiita.com/yaju/items/c5da6df2221d5c3611e0
1バイトが8bitに定まったのは2008年 - Qiita
https://qiita.com/yaju/items/c5da6df2221d5c3611e0
202デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 20:08:01.18ID:xUUhYAg30 ソフト的に1バイトは8ビットかも知れないが、回路的には奇数アドレスは存在しないから、1バイトは16ビットなり32ビットで扱われているんだよな
203デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:16:06.02ID:M07jk5SE0 >>189
ダウト
ダウト
204デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:21:12.72ID:M07jk5SE0 >>200
MIPSか?
MIPSか?
205デフォルトの名無しさん (ラクッペペ MMde-uyzx)
2020/06/06(土) 20:23:53.57ID:c5HWAPmOM > 回路的には奇数アドレスは存在しない
そんなものはマイコンのアドレスバスの接続方法による
小容量の内蔵RAMしか利用できないマイコンだと16bit単位とか効率悪すぎるだろ
そんなものはマイコンのアドレスバスの接続方法による
小容量の内蔵RAMしか利用できないマイコンだと16bit単位とか効率悪すぎるだろ
206デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 21:05:24.00ID:xUUhYAg30 >>205
データバスが16ビットのデバイスはA0が存在しないから、奇数アドレスがないんだよ
ハードウェア的には8ビットは扱えない
上位はコンパイラーが無視してるんだろ
昔の6800系のgccは奇数アドレスが使えなかった
データバスが16ビットのデバイスはA0が存在しないから、奇数アドレスがないんだよ
ハードウェア的には8ビットは扱えない
上位はコンパイラーが無視してるんだろ
昔の6800系のgccは奇数アドレスが使えなかった
207デフォルトの名無しさん (ドコグロ MM72-pFiI)
2020/06/06(土) 22:04:47.08ID:gPrzX488M 8ビットバスとかダイナミックバスサイジングとか無視して何言ってんの。
208デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/07(日) 04:50:34.91ID:OwGdNnMk0 8ビットが扱えるやつのint型もエンディアンがビックかリトルかで、ややこしくなる場合がある
209デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 09:49:33.48ID:8XBNAcXF0 カメラ屋がどうした
210デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 10:16:23.75ID:H9nBLvae0211デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/07(日) 10:27:42.17ID:uZfe/Sta0 10進の1が00になって2が000とかかな。
212デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 10:50:04.35ID:u8uKtPqt0 ON/OFFはどう区別するんだ?
213デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/07(日) 10:51:10.58ID:SnZB8S+e0 インド人もびっくり
214デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/07(日) 11:32:40.14ID:Mh1dmxtn0 e進数
215デフォルトの名無しさん (ブーイモ MM2e-gM8R)
2020/06/07(日) 12:36:00.73ID:sH3MBrgqM216デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 13:19:03.64ID:8XBNAcXF0 >>211
1倍すると桁が増えないといけないからいろいろ破綻しそうだな
1倍すると桁が増えないといけないからいろいろ破綻しそうだな
217デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:21:54.14ID:io+hJyHh0 1倍では桁は増えんだろ
2倍で桁数が2倍になる
2倍で桁数が2倍になる
218デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:33:17.03ID:rhi/+ASf0 1進数は存在しない
って話だろ
って話だろ
219デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:38:00.69ID:io+hJyHh0220デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/07(日) 13:39:30.13ID:ZZaIDzdi0 ハフマン法のパーツ
221デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:45:05.25ID:rhi/+ASf0222デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:49:56.72ID:rhi/+ASf0223デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:50:06.08ID:io+hJyHh0224デフォルトの名無しさん (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 16:38:34.23ID:Hm2+3fRX0 >>221 上手い書き換えだな。
何やら見覚えのある「位取り」というか「桁上がり」法だと思ったら、
「連番を(数字でなく)英文字を使って表現する」やり方がこれだ。
1番 a
2番 b
...
26番 z
27番 aa (位取り/桁上がりの 0 に相当する記号が存在しないため)
28番 ab
...
『Cの宝箱』(工学社)って本で数値からの変換プログラムを含めて初めて見た。
ANSI以前の古い本だけど、扱ってるネタは今でもなかなか面白い。
何やら見覚えのある「位取り」というか「桁上がり」法だと思ったら、
「連番を(数字でなく)英文字を使って表現する」やり方がこれだ。
1番 a
2番 b
...
26番 z
27番 aa (位取り/桁上がりの 0 に相当する記号が存在しないため)
28番 ab
...
『Cの宝箱』(工学社)って本で数値からの変換プログラムを含めて初めて見た。
ANSI以前の古い本だけど、扱ってるネタは今でもなかなか面白い。
225デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 17:17:01.17ID:u8uKtPqt0 1進数のかけ算
111 × 11 = 111111
1111 × 11111 = 11111111111111111111
111 × 11 = 111111
1111 × 11111 = 11111111111111111111
226デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:27:43.06ID:ABh2E5hxF >>224
excelのカラム名だな
excelのカラム名だな
227デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 17:53:13.82ID:H9nBLvae0228デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:56:40.04ID:ABh2E5hxF 定義上は間違ってない
0の桁上がりが00で次が000なら成立してる
0の桁上がりが00で次が000なら成立してる
229デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 18:51:19.67ID:H9nBLvae0 まあお前の定義ならそうなんだろうな
230224 (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 18:58:57.43ID:Hm2+3fRX0 >>226 確かに「Excelのカラム」がこれだね。
範囲指定の時にマウスポインタを暴走させるとちょくちょく目にする。
身近な実例なのに思いつかなかった。
それにしてもワッチョイの英数部分(何て呼ぶんだろ?)が FF11 とは。
範囲指定の時にマウスポインタを暴走させるとちょくちょく目にする。
身近な実例なのに思いつかなかった。
それにしてもワッチョイの英数部分(何て呼ぶんだろ?)が FF11 とは。
231デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/08(月) 15:49:07.32ID:blut5LG8F #
232デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 18:58:49.17ID:feWbpc5y0 今このスレ見返してたんですが
gcc -W -Wall
って意味あるんですか? -Wallオプションだけと何か違うの?
gcc -W -Wall
って意味あるんですか? -Wallオプションだけと何か違うの?
>>232
私も gcc/clang でそのオプションを好んでいます、理由はしりません…
私も gcc/clang でそのオプションを好んでいます、理由はしりません…
234デフォルトの名無しさん (ワッチョイ cf2d-6Bey)
2020/06/10(水) 22:37:56.41ID:GAHb3hGx0235デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 23:10:40.06ID:tM8DbNAJ0 >>234
なるほど
https://linuxjm.osdn.jp/html/GNU_gcc/man1/gcc.1.html
このページを見た限り-Wは-Wallに含まれてるのかなと解釈してました
どうもです
なるほど
https://linuxjm.osdn.jp/html/GNU_gcc/man1/gcc.1.html
このページを見た限り-Wは-Wallに含まれてるのかなと解釈してました
どうもです
236デフォルトの名無しさん (ワッチョイ 237b-FyPE)
2020/06/11(木) 06:19:27.46ID:zR4s1lAr0 man gcc を見ると -Wextra のところに This option used to be called -W.
と出てるね。日本語だと「かつては -W と呼ばれていた」で合ってるだろうか。
-W を指定することと -Wextra を指定することは同じ効果かな。
と出てるね。日本語だと「かつては -W と呼ばれていた」で合ってるだろうか。
-W を指定することと -Wextra を指定することは同じ効果かな。
237デフォルトの名無しさん (ワッチョイ 1a0e-IXeA)
2020/06/18(木) 12:45:08.73ID:5LdPXPiS0 clやgccのassertって生真面目にabortしてうざいね
イベント1001なんか記録してくれなくていいのに
イベント1001なんか記録してくれなくていいのに
238デフォルトの名無しさん (ワッチョイ 8f01-pPzt)
2020/06/24(水) 12:01:11.31ID:T7mdaPsT0 元気があればなんでもできる。
Cさえ出来ればなんでもできる。
Cさえ出来ればなんでもできる。
239デフォルトの名無しさん (ワッチョイ 7fd2-NJGG)
2020/06/25(木) 07:45:23.79ID:1LmSFJHY0 正しライブラリーは付属しません。
240デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:00:17.88ID:Nd1uEPT+0 C書いてる人ってみんな可変長配列とかリストとか木構造とかグラフとか自前で書けるよな?
241デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:01:55.58ID:XUZZkb7Yd 木構造⊂グラフ
242デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:03:09.05ID:XUZZkb7Yd 最近勉強して書けるようになったから嬉しいの?
243デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:06:39.00ID:Nd1uEPT+0 <3
244デフォルトの名無しさん (ワッチョイ 8f9b-/Fs/)
2020/06/25(木) 11:19:49.85ID:2XRewe5U0 >>240
自己参照構造体とか普通に使う
自己参照構造体とか普通に使う
245デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/25(木) 11:30:04.55ID:N8mY4JDD0 >>240
プロのミュージシャンは「蛙の歌」くらい自分で弾けるよな? くらいのシュールな質問だ
プロのミュージシャンは「蛙の歌」くらい自分で弾けるよな? くらいのシュールな質問だ
246デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/25(木) 12:01:03.23ID:6D953TAQ0 最近覚えた言葉を使ってみました
247デフォルトの名無しさん (ワントンキン MM9f-rLul)
2020/06/25(木) 12:24:56.81ID:9JLqMYSrM 職業画家ならピカソのイタズラガキぐらい描けるよな?
248デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 12:37:09.65ID:Nd1uEPT+0 <3
249デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 12:50:41.05ID:VB93ltO10 単なるそういう構造でも感心するような実装ができたらすごいけどな。
メモリ管理は奥が深いよ。
メモリ管理は奥が深いよ。
250デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/25(木) 13:27:45.77ID:HOWmpZqad 名前が付いてるようなのは既存のを使えば良い
付いてないような複雑な構成、特殊な構成のものがさらっと作れるようになって一人前
名前が付いてる構造をただ列挙して喜んでるようなのは初心者
付いてないような複雑な構成、特殊な構成のものがさらっと作れるようになって一人前
名前が付いてる構造をただ列挙して喜んでるようなのは初心者
251デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/25(木) 13:32:44.25ID:CW3F7rpu0 >>240
API使うから見たこともない。
API使うから見たこともない。
252デフォルトの名無しさん (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:18:14.56ID:f73tPHfd0 カーニハンが引用して有名になったフレーズだったと思うけど
「職業プログラマーでも二分探索を正しく実装できる者は意外なほど少ない」
ってのと似てる感じね。
出典はベントリーさんの記事だったかな。
で、ベントリーさんが出してる二分探索ルーチンの例が
(細かいこと言えば)誤ってるというお見事なオチ。
「職業プログラマーでも二分探索を正しく実装できる者は意外なほど少ない」
ってのと似てる感じね。
出典はベントリーさんの記事だったかな。
で、ベントリーさんが出してる二分探索ルーチンの例が
(細かいこと言えば)誤ってるというお見事なオチ。
253252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:22:50.60ID:f73tPHfd0 いかん、カーニハンさんに「さん」付けるの忘れた。
カーニハンに「さん」を付けるとなんか座りが悪い気がするんだよ。
べつに「ハン」は関西弁の「〜はん」じゃないのだけど。
カーニハンに「さん」を付けるとなんか座りが悪い気がするんだよ。
べつに「ハン」は関西弁の「〜はん」じゃないのだけど。
254デフォルトの名無しさん (スッップ Sd5f-xaSm)
2020/06/25(木) 17:28:33.47ID:EHXNgq1Pd アカデミックな文章のなかでは敬称略はデフォやん
255デフォルトの名無しさん (ワッチョイ 3f01-In76)
2020/06/25(木) 17:53:32.70ID:Yy8QFoSC0 インブリードチェックとかねー
掘り掘りの打ち切り確認とか
可変配列で返せると効率的なのに記述や関数使用方法がCでは面倒くさいという
web上のサラブレッド血統表のインブリードどこも結構いい加減な自動抽出だし
掘り掘りの打ち切り確認とか
可変配列で返せると効率的なのに記述や関数使用方法がCでは面倒くさいという
web上のサラブレッド血統表のインブリードどこも結構いい加減な自動抽出だし
256デフォルトの名無しさん (ワッチョイ 7f46-rLul)
2020/06/25(木) 17:55:14.95ID:5kqDetxy0 飴ちゃんみたい、蟹はん。
257252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:58:50.94ID:f73tPHfd0258デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 21:13:44.78ID:VB93ltO10 >>252
正しく実装ってのが何を指してるのかよく分からないけど、その解説ってどこかにある?
正しく実装ってのが何を指してるのかよく分からないけど、その解説ってどこかにある?
259デフォルトの名無しさん (ワッチョイ 0f3e-NJGG)
2020/06/25(木) 23:23:06.88ID:Dxq2c9AW0 2ch (5ch) ではカーニハンは蟹飯とか呼ばれたりするのも普通だからなー。
さんを付けた方がすわりが良いと思うなら付けてもいいが、
ここでは雑に言っても文句は出ないよ。
敬称を付けなきゃ敬意がないってわけでもないし。
さんを付けた方がすわりが良いと思うなら付けてもいいが、
ここでは雑に言っても文句は出ないよ。
敬称を付けなきゃ敬意がないってわけでもないし。
260デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/25(木) 23:35:03.55ID:kZgmLzec0 蟹めしとしか読めない。
261252 (ワッチョイ 0f7b-Yzg9)
2020/06/26(金) 07:00:11.04ID:Ks2Lu7GD0 >>258 の人に質問されたのでちょこっと書庫をひっくり返してみた。
書籍資料しか示せないし、古い本だから見つけるのは大変かも知れんけど。
今回は「さん」無しで書かせてもらう。人名が多くてやかましくなるでな。
カーニハンによる言及は『プログラミング作法』(ASCII)の第2章。
見直して気づいたけどベントリーからの直接の引用ではなかった。
あと、この本はカーニハンとパイクの共著だったので訂正させてもらう。
ベントリーによる2分探索法は『プログラム設計の着想』(近代科学社)の第4章。
ここに「ベル研とIBMで試したら2時間かけて正しく書けたのは10%」と出てる。
この章をまるまる使って、二分探索ルーチンを題材に、正しいプログラムを書く
手順を説明してるが、使用言語は擬似コードとBASICの方言。
補足としてネット情報 Wikipedia 「二分探索」ページ
特に「実装上の間違い」の部分が興味深いかと。
書籍資料しか示せないし、古い本だから見つけるのは大変かも知れんけど。
今回は「さん」無しで書かせてもらう。人名が多くてやかましくなるでな。
カーニハンによる言及は『プログラミング作法』(ASCII)の第2章。
見直して気づいたけどベントリーからの直接の引用ではなかった。
あと、この本はカーニハンとパイクの共著だったので訂正させてもらう。
ベントリーによる2分探索法は『プログラム設計の着想』(近代科学社)の第4章。
ここに「ベル研とIBMで試したら2時間かけて正しく書けたのは10%」と出てる。
この章をまるまる使って、二分探索ルーチンを題材に、正しいプログラムを書く
手順を説明してるが、使用言語は擬似コードとBASICの方言。
補足としてネット情報 Wikipedia 「二分探索」ページ
特に「実装上の間違い」の部分が興味深いかと。
262デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 07:30:17.89ID:zNtEkj210263デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:30:54.43ID:CbN2WAX/d 見てみたけど...
アルゴリズムの問題じゃなくて
ただのインデックスのオーバーフローか
インデックスが計算途中でオーバーフローする心配をするなら
要素数自体がintの範囲を越える心配やメモリ不足の心配もしないと
アルゴリズムの問題じゃなくて
ただのインデックスのオーバーフローか
インデックスが計算途中でオーバーフローする心配をするなら
要素数自体がintの範囲を越える心配やメモリ不足の心配もしないと
264デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:33:24.14ID:CbN2WAX/d intじゃ足りないかもしれないから
size_tじゃないとバグとか言い出すのか
くだらん
size_tじゃないとバグとか言い出すのか
くだらん
265デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:37:26.08ID:CbN2WAX/d 斜辺を求めるコードも
sqrt(a*a+b*b)
なんて書いたらバグだと言われちゃうね
sqrt(a*a+b*b)
なんて書いたらバグだと言われちゃうね
266デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 07:53:21.24ID:R6SXx1iE0 まあ、ビット数の少ないCPUを使ってた頃はオーバーフローで実際にバグの挙動を示していたこともあったのかもね。
64bitになって、今しばらくはインデックスの足し算をいい加減な順番で行ってもオーバーフローになるほど実メモリが積めなそうだけども。
64bitになって、今しばらくはインデックスの足し算をいい加減な順番で行ってもオーバーフローになるほど実メモリが積めなそうだけども。
267デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 08:08:32.76ID:tBxKhrZw0 >>265
aとbがintなのにキャストしないタコいたら許さん
aとbがintなのにキャストしないタコいたら許さん
268デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 08:22:33.07ID:zNtEkj210 >>263
だからアルゴリズムじゃなくて実装の問題だって話なんだろ。
そして型が int だとか size_t だとかの問題でもない。
どんな型であろうと計算の途中でその型をオーバーフローする可能性がある式だというのが問題であり、扱ってるデータではオーバーフローしないことを意識した上でそういう式を選んでるのかたまたまそういう条件になってるのかは大違いってこと。
最近は64bitだからいちいちそんなこと考える必要もないというなら、それは違うだろと(検索対象がメモリで64bitに及ばないメモリ量の環境でしか使わないコードだという考慮くらいは必要)。
特にライブラリなんかでは、インデックスの許容範囲がその型の許容範囲より狭いならば明記しなければならない。
だからアルゴリズムじゃなくて実装の問題だって話なんだろ。
そして型が int だとか size_t だとかの問題でもない。
どんな型であろうと計算の途中でその型をオーバーフローする可能性がある式だというのが問題であり、扱ってるデータではオーバーフローしないことを意識した上でそういう式を選んでるのかたまたまそういう条件になってるのかは大違いってこと。
最近は64bitだからいちいちそんなこと考える必要もないというなら、それは違うだろと(検索対象がメモリで64bitに及ばないメモリ量の環境でしか使わないコードだという考慮くらいは必要)。
特にライブラリなんかでは、インデックスの許容範囲がその型の許容範囲より狭いならば明記しなければならない。
269デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:51:08.83ID:ulI8ykG3d270デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:55:01.02ID:ulI8ykG3d271デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:27:28.43ID:zNtEkj210272デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:39:45.10ID:zNtEkj210 >>271
a & 1 にカッコ忘れてるのは多目に見て
a & 1 にカッコ忘れてるのは多目に見て
273デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 10:09:23.28ID:zNtEkj210274デフォルトの名無しさん (ワッチョイ 7f69-H7K1)
2020/06/26(金) 10:12:30.36ID:DHczgJjy0 ビットand の & の優先順位が低いのがすげー気になるマン
275デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 10:24:55.68ID:0ez7fC22d >>271
aが小さいとダメだからバグです
aが小さいとダメだからバグです
276デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 11:51:33.67ID:CsRb/b6RM 確かに、掛け算並みに優先度高くても良い気がする
277デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 12:06:06.43ID:wPd6FHznd 比較より低いのは仕様バグだな
278デフォルトの名無しさん (ワッチョイ 3ff9-5fXH)
2020/06/26(金) 12:54:54.87ID:hOK/Kg/V0 a,bがdoubleでsqrt(a*a+b*b)以外にどう書けと
279デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:34:59.23ID:zNtEkj210 >>278
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
280デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:41:41.84ID:zNtEkj210281デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 14:27:07.38ID:QICJMmXvM doubleでオーバーフローって、10の何乗を想定してる?
282デフォルトの名無しさん (ワッチョイ 4f19-IZ2D)
2020/06/26(金) 15:19:41.24ID:gU0A9MqI0 aとbの差が大きいときでしょ
283デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 15:43:00.88ID:QICJMmXvM それオーバーフローじゃないし、
情報落ちのことだとすればsqrt(a*a+b*b)をどう工夫して防げと?
情報落ちのことだとすればsqrt(a*a+b*b)をどう工夫して防げと?
284デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 16:10:21.31ID:tBxKhrZw0285デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 16:42:15.29ID:QICJMmXvM で、宇宙の観測可能な距離をヨクトメートル単位で表したら?
286デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 16:44:50.44ID:R6SXx1iE0 デカルト距離は物理的な空間でしか使われないわけじゃないしなあ(屁理屈
287デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 17:02:33.96ID:tBxKhrZw0 64bitあれば大きいほうはエクサ、小さい方はアトまで扱える
今飲んでるコーヒーの液面からカップの底までが1アトパーセクくらい
今飲んでるコーヒーの液面からカップの底までが1アトパーセクくらい
288デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:41:45.88ID:PjbtVFt+F289デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 17:47:26.42ID:zNtEkj210 double で何やったらオーバーフローするのかってことじゃなく、必要な対象を計算するのに必要な型や計算手順は何かってことだろ。
掛け算や指数を扱うならオーバーフローについては普通に考慮するもんだと思うけど、そうじゃないのか?
今扱おうとしてる対象について考慮してるから double なら大丈夫だと考えてるんだろ。
で二分木については足し算がオーバーフローする可能性が盲点ってことで、なるほどと思うべき所だろ。
アルゴリズム上も計算途中に最初に与えた imax を超える値が現れるようには見えないんだから。
今時 double も 64bit整数も当たり前だったとしても、SIMD使いたいからデータ長を抑えたいなんてこともあるでしょ。
掛け算や指数を扱うならオーバーフローについては普通に考慮するもんだと思うけど、そうじゃないのか?
今扱おうとしてる対象について考慮してるから double なら大丈夫だと考えてるんだろ。
で二分木については足し算がオーバーフローする可能性が盲点ってことで、なるほどと思うべき所だろ。
アルゴリズム上も計算途中に最初に与えた imax を超える値が現れるようには見えないんだから。
今時 double も 64bit整数も当たり前だったとしても、SIMD使いたいからデータ長を抑えたいなんてこともあるでしょ。
290デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:54:06.22ID:PjbtVFt+F 一般論で答えても叩かれる
質問内容に特化して答えても叩かれる
どうしろと
質問内容に特化して答えても叩かれる
どうしろと
291デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 17:56:45.81ID:9etEQyfpM 俺くらいになればケッセルランを12パーセクで飛ぶくらい余裕
292デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:11:05.35ID:EPLAnBEId293デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:13:45.24ID:EPLAnBEId294デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:15:32.77ID:TyyL07+Ya >>240
みんなかどうかは知らんがおれは書けるな
みんなかどうかは知らんがおれは書けるな
295デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:18:13.75ID:TyyL07+Ya >>253
カニチャーハン
カニチャーハン
296デフォルトの名無しさん (ワッチョイ 3f7d-naG6)
2020/06/26(金) 21:39:07.24ID:/YkOh9yY0 int x=0;
int y=(x=1)+(x=2);
とするとyが4になってしまいます。
3だと思うのですが。
int y=(x=1)+(x=2);
とするとyが4になってしまいます。
3だと思うのですが。
>>271
>オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
それは回避したことになりません、演算子 / 2 と * b のどちらが先に処理されるかはコンパイラが籤引きで決めるか独断偏見で決め打ちするのでは?
>オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
それは回避したことになりません、演算子 / 2 と * b のどちらが先に処理されるかはコンパイラが籤引きで決めるか独断偏見で決め打ちするのでは?
299デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:52:32.85ID:Sd6G194T0300はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/26(金) 21:54:17.86ID:gtOtInFM0301デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:57:33.08ID:Sd6G194T0 int x=0;
x=1;
x=2;
int y=x+x; //(2+2)
という話になっているのだと思われ
x=1;
x=2;
int y=x+x; //(2+2)
という話になっているのだと思われ
302デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 22:03:10.60ID:Sd6G194T0 あとは優しいおじい・・紳士様がアセンブラでは実際どうなっているかを解説してくれるはず
303デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 22:32:16.04ID:zNtEkj210 >>297
自信を持っては言えないけど、/ 2 してから * b するのとその逆とでは結果が違うんだから、書いた式と結果が異なる可能性がある計算順にコンパイラがいじるものかね?
例えば各項を関数として a() / c() * b() にした場合、a 〜 c がどの順で実行されるか、つまり項の評価順は保証されないけどそれら結果を使った計算順は式通りになるんじゃないの?
でももし仮にそういう懸念があるなら、カッコ付けるなりそれでだめなら2手に分けるなりすればいいんじゃね。
自信を持っては言えないけど、/ 2 してから * b するのとその逆とでは結果が違うんだから、書いた式と結果が異なる可能性がある計算順にコンパイラがいじるものかね?
例えば各項を関数として a() / c() * b() にした場合、a 〜 c がどの順で実行されるか、つまり項の評価順は保証されないけどそれら結果を使った計算順は式通りになるんじゃないの?
でももし仮にそういう懸念があるなら、カッコ付けるなりそれでだめなら2手に分けるなりすればいいんじゃね。
304デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 22:48:16.05ID:GYQIE3peM >>302
アセンブラだとxに2入れて、yに4入れて、おしまいだろうな。
アセンブラだとxに2入れて、yに4入れて、おしまいだろうな。
305デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/26(金) 23:31:20.43ID:ONx8T6wJ0 誰も逆汗しないのな。
一昔前だったら
A「俺がやってみるから待ってろ。」
B「いや、俺がやるから(ry」
C「いやいや、俺こそが」
AB「「どうぞどうぞ」」
の前振りだったのに。
VC++2019のデバッグモード
int y = (x = 1) + (x = 2);
00C118FF mov dword ptr [x],1
00C11906 mov dword ptr [x],2
00C1190D mov eax,dword ptr [x]
00C11910 add eax,dword ptr [x]
00C11913 mov dword ptr [y],eax
最適化したら 304 になるんだろうけど。
一昔前だったら
A「俺がやってみるから待ってろ。」
B「いや、俺がやるから(ry」
C「いやいや、俺こそが」
AB「「どうぞどうぞ」」
の前振りだったのに。
VC++2019のデバッグモード
int y = (x = 1) + (x = 2);
00C118FF mov dword ptr [x],1
00C11906 mov dword ptr [x],2
00C1190D mov eax,dword ptr [x]
00C11910 add eax,dword ptr [x]
00C11913 mov dword ptr [y],eax
最適化したら 304 になるんだろうけど。
306デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 23:34:17.38ID:GYQIE3peM クソ冗長なコードだな
307はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/27(土) 00:56:28.31ID:VCabyp7F0 >>297
/ と * の優先順位は等しくて左結合なんだから疑問の余地はない。
a/2*b と書いてあったら a を 2 で割ってからそれに b をかける。
またはそうしたかのように見えるような振舞いをすることは保証される。
そうなってなかったらコンパイラのバグだよ。
/ と * の優先順位は等しくて左結合なんだから疑問の余地はない。
a/2*b と書いてあったら a を 2 で割ってからそれに b をかける。
またはそうしたかのように見えるような振舞いをすることは保証される。
そうなってなかったらコンパイラのバグだよ。
308デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 01:04:32.76ID:zYxBmbbI0 「回避手段があるならバグとしない。」
309デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 01:14:50.37ID:qKnmoagb0 例えばスケーリングなんかの時、オーバーフローを避けるため割り算やってから掛け算することもあるし、丸め誤差を小さくするため掛け算やってから割り算することもあるし、
意図して式書いてるんだから順序を勝手に変えられたらやっぱり大問題だよな。
意図して式書いてるんだから順序を勝手に変えられたらやっぱり大問題だよな。
310デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:08:40.12ID:TsX0h7IG0311デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:18:53.17ID:TsX0h7IG0 >>311
ありがとうございます、たしかに副作用完了点に対する私の誤解です
@値の評価の問題、と、A副作用の問題、とを完全にごった煮にしてました、今回は副作用は関係ない…
>QZがここまでアホだとは
現在までの推移を客観的に観察している限りにおいて、これはスランプでは済まず、私はこれからもっと阿呆になっていくのだろうと私は予測しています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/ へのエントリー数もパッタリ止まってもう増えそうもありません
ありがとうございます、たしかに副作用完了点に対する私の誤解です
@値の評価の問題、と、A副作用の問題、とを完全にごった煮にしてました、今回は副作用は関係ない…
>QZがここまでアホだとは
現在までの推移を客観的に観察している限りにおいて、これはスランプでは済まず、私はこれからもっと阿呆になっていくのだろうと私は予測しています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/ へのエントリー数もパッタリ止まってもう増えそうもありません
313デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:38:40.98ID:Fil4ka9J0 >>296
鼻から悪魔ネタはもうお腹いっぱい
鼻から悪魔ネタはもうお腹いっぱい
314デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:39:33.42ID:Fil4ka9J0 >>309
行を分けて書けばいいだけ
行を分けて書けばいいだけ
315デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:42:53.25ID:aqzZKmXR0 アホが使うと使い手とそっくりな動きになる
Cとはそういうものだ
Cとはそういうものだ
316デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:45:36.41ID:TsX0h7IG0317デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:48:05.70ID:TsX0h7IG0318デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:51:31.93ID:TsX0h7IG0 オーバーフローを最近勉強して
それだけが気になって
それを回避するために別の問題を起こす
初心者君のたわごとだから
放置すればいいんだけど
それだけが気になって
それを回避するために別の問題を起こす
初心者君のたわごとだから
放置すればいいんだけど
319デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:57:09.10ID:aqzZKmXR0 どんくらいまでの誤差を許容すべきかは
なかなか数学的な考えどころ
なかなか数学的な考えどころ
320デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:11:00.12ID:TsX0h7IG0 許容誤差
パラメーターの対応範囲
コスト
保守性、可読性、...
これらを総合的に考えてコードを作るのが普通
1個だけの要素が気になるといびつな実装になる
色々な規格も偏った視野で作られる事が多くて
いびつな物が多い
それぞれの項目を勉強するのはもちろん良いこと
パラメーターの対応範囲
コスト
保守性、可読性、...
これらを総合的に考えてコードを作るのが普通
1個だけの要素が気になるといびつな実装になる
色々な規格も偏った視野で作られる事が多くて
いびつな物が多い
それぞれの項目を勉強するのはもちろん良いこと
321デフォルトの名無しさん (ワッチョイ 3f4f-NJGG)
2020/06/27(土) 09:23:41.94ID:6HwwPL420 >>317
両方起こりえる状況なら変数の精度不足というバグか。
両方起こりえる状況なら変数の精度不足というバグか。
322デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 09:32:46.13ID:Fil4ka9J0 >>316
ああアホには「文」を分けると書かないとわからんかw
ああアホには「文」を分けると書かないとわからんかw
323デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:40:26.98ID:TsX0h7IG0324デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 09:50:13.95ID:qKnmoagb0 オーバーフローの話は (imax + imin) / 2 ではなく imin + (imax - imin) 2 と書けば回避できるってのが発端なわけだけど、何がそんなに気にくわないんだ?
盲点とも言えるよくやりがちなことなんだから、素直に吸収しときゃいいんじゃないの?
盲点とも言えるよくやりがちなことなんだから、素直に吸収しときゃいいんじゃないの?
325デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:02:32.81ID:TsX0h7IG0326デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:08:05.06ID:qKnmoagb0 >>325
それってどれのこと?
それってどれのこと?
327デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:11:14.54ID:qKnmoagb0328デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:20:58.17ID:TsX0h7IG0 元はカーニハンとかいう人だろ
その影響を受けたのが>>268
オーバーフローの可能性が無いなら
前者のままでも良いっていうか
前者の方が良い場合もある
コストは確実に前者の方が安い
リニア検索ではなくてコードサイズの大きな2分検索を使うあたり
パフォーマンスが全くどうでも良い所ではないということもわかるわけで
移植性は後者、コストは前者、
可読性は微妙だが前者?
intよりsize_tを使うべきなんて思ってないよ
使う範囲、使う環境、移植性、...
などなどでどうするべきかは変わる
その影響を受けたのが>>268
オーバーフローの可能性が無いなら
前者のままでも良いっていうか
前者の方が良い場合もある
コストは確実に前者の方が安い
リニア検索ではなくてコードサイズの大きな2分検索を使うあたり
パフォーマンスが全くどうでも良い所ではないということもわかるわけで
移植性は後者、コストは前者、
可読性は微妙だが前者?
intよりsize_tを使うべきなんて思ってないよ
使う範囲、使う環境、移植性、...
などなどでどうするべきかは変わる
329デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:23:22.01ID:qKnmoagb0330デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:23:42.01ID:TsX0h7IG0 C言語スレだから
チープな8bit環境から
スーパーコンピューターまで
様々な所で使われる
重視すべき項目は時と場合で大きく違う
チープな8bit環境から
スーパーコンピューターまで
様々な所で使われる
重視すべき項目は時と場合で大きく違う
331デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:25:33.79ID:TsX0h7IG0332デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:29:38.97ID:qKnmoagb0333デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:49:08.20ID:TsX0h7IG0334デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 11:08:27.27ID:qKnmoagb0 >>333
たぶん論旨は伝わったと思うので追い打ちかけるつもりではないが、レス付けるに当たっては「オーバーフローを回避するなら」と必ず付けてるし、扱う値の範囲を鑑みて型が充分か考慮しろと言ってるだけのことな。
扱うのが宇宙の座標をメートル単位で、くらいの話なら double でもオーバーフロー的な問題は無いなとか、
でももしシミュレーションで宇宙を100次元空間として体積を求める話だったら double でも大丈夫かな?とか考慮するでしょ。
まあそんなケースだと値の大きさより有効桁の方が心配だけど、なんにしてもとりあえずデカい型だから大丈夫wなんて漫然と思ってるならただのアホという至極当然の話。
たぶん論旨は伝わったと思うので追い打ちかけるつもりではないが、レス付けるに当たっては「オーバーフローを回避するなら」と必ず付けてるし、扱う値の範囲を鑑みて型が充分か考慮しろと言ってるだけのことな。
扱うのが宇宙の座標をメートル単位で、くらいの話なら double でもオーバーフロー的な問題は無いなとか、
でももしシミュレーションで宇宙を100次元空間として体積を求める話だったら double でも大丈夫かな?とか考慮するでしょ。
まあそんなケースだと値の大きさより有効桁の方が心配だけど、なんにしてもとりあえずデカい型だから大丈夫wなんて漫然と思ってるならただのアホという至極当然の話。
335デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 12:40:30.36ID:Fil4ka9J0336デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/27(土) 12:53:15.33ID:F1FZoULud >>334
状況によって適切なコードを選ぶべきと思ってるなら別にいい
そうじゃなさそうだったので
「間違ってる」「バグ」「正しくない」という主張じゃなかった?
2分検索が10%しか正しく書けないなんてことはないと思うんだがね
状況によって適切なコードを選ぶべきと思ってるなら別にいい
そうじゃなさそうだったので
「間違ってる」「バグ」「正しくない」という主張じゃなかった?
2分検索が10%しか正しく書けないなんてことはないと思うんだがね
337デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 13:02:32.88ID:qKnmoagb0 >>336
>2分検索が10%しか正しく書けないなんてことはないと思うんだがね
そう、ここが気になったんだけど、でももし二分検索を書いたこと無い人がアルゴリズムを見て一発で動作するコードが書けるか?という話なら、案外その程度かもと思ったり。
分割時の端数処理の考慮が不適切でインデックスが変化せず無限ループに陥ったり、検索から抜け落ちる要素が出たり、要素数が0〜2ないし3くらいの範囲でうまく動かなかったり。
ちょっと動かせばすぐ修正点に気付いて動くコードに仕立てられるだろうけど、ぶっつけで動かせるかと言ったら案外難しいんじゃね。
>2分検索が10%しか正しく書けないなんてことはないと思うんだがね
そう、ここが気になったんだけど、でももし二分検索を書いたこと無い人がアルゴリズムを見て一発で動作するコードが書けるか?という話なら、案外その程度かもと思ったり。
分割時の端数処理の考慮が不適切でインデックスが変化せず無限ループに陥ったり、検索から抜け落ちる要素が出たり、要素数が0〜2ないし3くらいの範囲でうまく動かなかったり。
ちょっと動かせばすぐ修正点に気付いて動くコードに仕立てられるだろうけど、ぶっつけで動かせるかと言ったら案外難しいんじゃね。
338デフォルトの名無しさん (ワッチョイ 0fda-PIQW)
2020/06/27(土) 14:22:51.51ID:BPJhbq4z0 クイックソートを一発で書けと言われるとちょっとつらい。
あまりにうろ覚えすぎる。
30分待ってやる
と言われれば思い出しながら余裕を持って書ける。かな?
いやどうだろう?
ソートは完璧だろうけど、アルゴリズムはあやしいな
「クイックに似た何かソート」になりそうかも
あまりにうろ覚えすぎる。
30分待ってやる
と言われれば思い出しながら余裕を持って書ける。かな?
いやどうだろう?
ソートは完璧だろうけど、アルゴリズムはあやしいな
「クイックに似た何かソート」になりそうかも
>>296,298-301
些細なことですが、>>296,298,299 の結果は納得いかないです
>int y = (x = 1) + (x = 2);
たしかに gcc/clang とも警告は出ますが、しかしそれはシーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定という意味ですね
しかし演算子 + のオペランドの値は確定していて、すなわち 2 と 5
だから y の値は、この場合は確定的に 7 になるはずです
実際、手元の clang(8,0,1) でコンパイルした場合、結果は y = 7 で上の解釈と合致します。
私は gcc がバグっていると思いました。
些細なことですが、>>296,298,299 の結果は納得いかないです
>int y = (x = 1) + (x = 2);
たしかに gcc/clang とも警告は出ますが、しかしそれはシーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定という意味ですね
しかし演算子 + のオペランドの値は確定していて、すなわち 2 と 5
だから y の値は、この場合は確定的に 7 になるはずです
実際、手元の clang(8,0,1) でコンパイルした場合、結果は y = 7 で上の解釈と合致します。
私は gcc がバグっていると思いました。
>>339
×シーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定
○シーケンスポイント間で x を複数回書き込んでいる、という警告で、それは x の値が 2, 5 のいずれかになるか不確定
×シーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定
○シーケンスポイント間で x を複数回書き込んでいる、という警告で、それは x の値が 2, 5 のいずれかになるか不確定
341デフォルトの名無しさん (ガラプー KK83-hH/T)
2020/06/27(土) 16:04:40.17ID:WNNU6Y/YK 既出かもしれんが
>int y = (x = 1) + (x = 2);
演算順は
(x = 1)
(x = 2)
左辺値 x + 左辺値 x
y = その結果
なんじゃないの?
>int y = (x = 1) + (x = 2);
演算順は
(x = 1)
(x = 2)
左辺値 x + 左辺値 x
y = その結果
なんじゃないの?
>>341 ありがとうございます
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
344デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 18:53:06.85ID:fF6t87uZa 式の値は x = 1 なら 1 だけど、その式の値が x と同一といわれると微妙な気が
コンパイラによって結果が変わってきそうな気も
コンパイラによって結果が変わってきそうな気も
345デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 19:00:52.23ID:zYxBmbbI0 数学の変数とプログラムの変数は別物。
346デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:34:42.19ID:5xR8poHP0 そもそもイコールではなくて代入だもんね
347デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 20:36:44.26ID:TsX0h7IG0 比較が =
代入が :=
の方が良かったと思う
代入が :=
の方が良かったと思う
348デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:37:36.35ID:5xR8poHP0 :3
349デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/27(土) 20:39:21.93ID:ItnTp6fM0 >>342
寝るの早いよ!
寝るの早いよ!
350デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 20:42:32.55ID:zYxBmbbI0 つ ぴゅう太BASIC
351デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 20:44:48.50ID:aqzZKmXR0 >>347
PASCALが嫌いな人が作った言語でか?
PASCALが嫌いな人が作った言語でか?
352デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:56:58.25ID:YxSvZ5UV0 代入も比較も同じ = 記号なんだけど代入した結果を利用できない言語はあるね。
353デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:57:46.41ID:YxSvZ5UV0 あ、ごめん。ないかな?でも作れなくはないか。
354デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:20.32ID:fF6t87uZa >>353
代入文の言語とか
代入文の言語とか
355デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:54.32ID:fF6t87uZa 文は値を持たないから
356デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:16:43.71ID:fF6t87uZa 代入式なら
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
357デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 21:48:32.85ID:TsX0h7IG0 >>352
BASIC
BASIC
358デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 21:54:01.50ID:YxSvZ5UV0 あ、そうだ。昔の BASIC がそれだったな。今もそうか。
359デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/27(土) 22:14:52.03ID:8IoNpLP20 Fortranも駄目だった気がする
360デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/27(土) 22:45:34.92ID:3uU6UKGu0 iZ-Cで頑張っている方々もいる。
361デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 22:52:26.39ID:Fil4ka9J0362デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 23:11:39.40ID:YxSvZ5UV0 ま、しかし、本当なら代入は全く違う記号(あるいはワード)使って欲しいところではある。
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
363デフォルトの名無しさん (ガラプー KKb3-hH/T)
2020/06/27(土) 23:17:49.21ID:WNNU6Y/YK それ小学生のとき見たからすんなり入ってきた
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
364デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 23:24:19.62ID:zYxBmbbI0 >a = b = 0:
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
365デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:37:39.31ID:fF6t87uZa そっか、そのとき b = 0 は代入文じゃなくて、値を持つ比較式ですね
文法は間違いでした
文法は間違いでした
366デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:38:09.75ID:fF6t87uZa 文法エラーは間違いでした
でした
でした
367デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/28(日) 00:32:47.05ID:akwdxVh60 =は代入が比較より使用頻度が高いので、2文字(=:)が代入だと地味に面倒そう。
368デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/28(日) 07:11:45.70ID:4OGtUBl/0 >>362
APLお勧め
APLお勧め
369デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/28(日) 11:47:20.61ID:vGhSDCc20 iZ-Cに反応しないのは素人か。
370デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/28(日) 17:12:13.76ID:8Xgo7zrJ0 >>368
今のAPLはつまんなくなったね
今のAPLはつまんなくなったね
371デフォルトの名無しさん (ワッチョイ 0fda-5fXH)
2020/06/28(日) 21:51:57.49ID:kMbOl++G0 変数名を文字列で取得したいんだけど どうしたらいいかな
printfデバッグとかで、 printf("hogehoge=%d\n",hogehoge); ってやるじゃん?
これをちょっとだけ効率よくしたいけど、マクロでどうにかならん?
printfデバッグとかで、 printf("hogehoge=%d\n",hogehoge); ってやるじゃん?
これをちょっとだけ効率よくしたいけど、マクロでどうにかならん?
372はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/28(日) 21:54:48.80ID:Iks3cRKy0 >>371
マクロ定義のときは識別子に # を付けると識別子を文字列扱いできる。
マクロ定義のときは識別子に # を付けると識別子を文字列扱いできる。
373蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8f01-c0lz)
2020/06/28(日) 22:04:34.55ID:2DMHRA/z0 #define POUT(x) printf("%s = %d\n", #x, (x))
こんな感じ?
こんな感じ?
374蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-Oc0l)
2020/06/28(日) 22:18:47.05ID:dcZQFZ1fd #define POUT(x) printf(#x " = %d\n", (x))
こっちの方がいいか?
こっちの方がいいか?
375デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/28(日) 22:53:44.96ID:HzcxpANJ0 文字列リテラルの連結は滅多に使わないけど盲点というか
わかってて使うには良いものだね
"aaaa" "bbbb" → "aaaabbbb" として解釈される
わかってて使うには良いものだね
"aaaa" "bbbb" → "aaaabbbb" として解釈される
376デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/28(日) 22:57:59.33ID:qWBhd30v0377デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/28(日) 23:05:22.34ID:sygO1Ih/0 usage表示したいときとか普通に使うわ
378デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/29(月) 00:09:50.35ID:eubxXrdwd 私も普通に使う
379デフォルトの名無しさん (ワッチョイ 8f01-/Fs/)
2020/06/29(月) 01:27:56.70ID:C/fQS0GP0 viがバグるのでやめてください。
380デフォルトの名無しさん (ワッチョイ cf05-NJGG)
2020/06/29(月) 08:55:46.03ID:UQIGysI+0 vimはバグらないぞ
381デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 08:57:31.19ID:y9Ww1t9/H もしかして: vim
382デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 08:58:42.61ID:nBP9TntY0 vimじゃないviには長年世話になったもんだ
383デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/29(月) 13:35:04.89ID:rjGVLU620384デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:01:50.53ID:fw2IFdDxF and が & と &&
or が | と ||
という具合に bit 演算用と論理演算用で演算子が違いますが
bit 演算の xor は ^ で
int a = 123, b = 456;
のとき a^b と描けますが
論理式の xor はどう描けばいい?
bool u = true, v = true;
のとき u^v と描いても問題無いですか?
or が | と ||
という具合に bit 演算用と論理演算用で演算子が違いますが
bit 演算の xor は ^ で
int a = 123, b = 456;
のとき a^b と描けますが
論理式の xor はどう描けばいい?
bool u = true, v = true;
のとき u^v と描いても問題無いですか?
385デフォルトの名無しさん (ワッチョイ 0fda-pW1u)
2020/06/29(月) 15:17:39.29ID:TPMqgpKl0 (u != v) で良いのでは?
386デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:25:14.45ID:fw2IFdDxF bool に 0 と !0 以外が入ってても大丈夫ですか?
387デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:27:23.97ID:fw2IFdDxF もし御存じの方がいらっしゃったらで良いのですが
"u ^^ v" みたいな演算子が無い理由も知りたいです
問題後出しで済みません
"u ^^ v" みたいな演算子が無い理由も知りたいです
問題後出しで済みません
388デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 15:37:10.60ID:y9Ww1t9/H ビットごとのxorは暗号とかで多用するけど、
論理式のxor(一方のみ真)はめったに使わないからかと。
!u != !v が最小かな。
論理式のxor(一方のみ真)はめったに使わないからかと。
!u != !v が最小かな。
389デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:41:17.96ID:fw2IFdDxF ありがとうございました
390デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 16:32:31.26ID:nBP9TntY0 関係演算子の結果はint型の1か0なんだから
a < 124 ^ b < 456 でもいいはず
a < 124 ^ b < 456 でもいいはず
391デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:07:26.21ID:TPMqgpKl0 C99以降のbool型(_Bool型)の値はfalse(0)とtrue(1)のどちらかしか取り得ない
変数や式の評価が0以外の場合はすべて1に変換される
評価結果の値が不明の場合はbool型にキャストすると良い
(bool)u != (bool)v
変数や式の評価が0以外の場合はすべて1に変換される
評価結果の値が不明の場合はbool型にキャストすると良い
(bool)u != (bool)v
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 17:12:09.58ID:vApDDB4S0 イディオムとしては !! を付ける (否定を二回やる) というのもよく知られている。
(見づらいので良くないという意見もある。)
(見づらいので良くないという意見もある。)
393デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 17:19:40.81ID:nBP9TntY0 !!は厨二病臭くて俺はあんまりやらないが
この程度で読みづらいとか言い出すスキル不足なやつに迎合する意図は毛頭ない
この程度で読みづらいとか言い出すスキル不足なやつに迎合する意図は毛頭ない
394デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:24:25.71ID:TPMqgpKl0 適当サンプルプログラム
https://i.imgur.com/OgY6Qcz.png
https://i.imgur.com/OgY6Qcz.png
395デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 17:44:20.33ID:1Lbf5C9Kd 0, !0 意外の値が入ってた場合にどんな結果を期待するかによる
396デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/29(月) 17:55:06.30ID:I0J8qHbO0 禅問答かよ。
397デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/29(月) 19:26:41.50ID:xaDJZCCE0398デフォルトの名無しさん (JP 0Hbf-EqIm)
2020/06/29(月) 19:30:21.97ID:rBtTXcyIH C言語に使ってるエディタとかIDEとか教えてください
OSとかの環境もあるとありがたい
OSとかの環境もあるとありがたい
399デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 19:31:22.68ID:JUEjBXx8d EDLIN
400デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 19:59:21.99ID:x9/2kcfz0 >>398
C言語を何に使うかによって全然違うと思うけど
C言語を何に使うかによって全然違うと思うけど
401デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 20:00:40.16ID:JUEjBXx8d 何に使うかでそんなに変わるか?
402デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 20:03:09.44ID:6d9dL1u1a C言語でエンドルフィンの造出をアヘアヘ
404デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/29(月) 20:13:09.53ID:o6pktO+O0 学習用途で ideone や codepad 規模で済むなら Webブラウザ
405デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 20:21:56.62ID:TPMqgpKl0406はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 20:23:46.01ID:vApDDB4S0 >>398
OS: Windows10
コンパイラ: gcc と clang (msys2 の pacman で入るやつ)
その他に Open Watcom C とか LCC (LSI-C じゃなくて Little C Compiler ね) とか
エディタ: Emacs
OS: Windows10
コンパイラ: gcc と clang (msys2 の pacman で入るやつ)
その他に Open Watcom C とか LCC (LSI-C じゃなくて Little C Compiler ね) とか
エディタ: Emacs
407デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 20:24:01.34ID:x9/2kcfz0 初学の時、H8に書くとき、arduinoに書くとき、それぞれ全部違ったわ。
408デフォルトの名無しさん (ワッチョイ 8f14-5Vex)
2020/06/29(月) 21:14:11.50ID:Gzb8Tiox0409デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/29(月) 21:49:44.45ID:uavgiC7w0 適切な問題とヒントが一番大事。
410デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/30(火) 06:48:50.33ID:W+MWiusu0 >>398
秀丸
秀丸
411デフォルトの名無しさん (ワッチョイ cf2c-wMgy)
2020/06/30(火) 07:20:47.85ID:ojYrCHBE0 漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を、build-essential で、コンパイルして入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を、build-essential で、コンパイルして入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential
412デフォルトの名無しさん (ラクッペペ MM4f-pW1u)
2020/06/30(火) 11:26:03.93ID:Xg3HKp34M build-essential以外はC言語には関係ないな
413デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/02(木) 09:18:11.06ID:1XrTO7+60 Cに限らず汎用で使える開発環境で色々やってるってことかと。
俺も基本的にはvimとmakeで何でもやる。
vimの中でとりあえず :make と打ってQuickFix機能でエラー修正。
上手く拾ってくれない時は ~/.vimrc で errorformat 変数に追加。
>>398 の人はOSも知りたいってことなので追加。
Linuxのウィンドウ環境使わないコンソールでfbterm(日本語表示用)。
ツール類はディストリビューションに入ってた奴。
俺も基本的にはvimとmakeで何でもやる。
vimの中でとりあえず :make と打ってQuickFix機能でエラー修正。
上手く拾ってくれない時は ~/.vimrc で errorformat 変数に追加。
>>398 の人はOSも知りたいってことなので追加。
Linuxのウィンドウ環境使わないコンソールでfbterm(日本語表示用)。
ツール類はディストリビューションに入ってた奴。
414デフォルトの名無しさん (JP 0H42-2vAA)
2020/07/06(月) 17:38:55.00ID:6O25/+p5H int main (void)
{ char a[256];
printf("Enter a string:");
scanf("%s", a);
(以下略)
勉強中に上のような「キーボード入力からchar型配列に文字列を格納する」という処理を見かけました
この例だと(ヌル文字含め)256文字以上の文字が入力されたときはその後の処理が正常にできなくなりますよね
現実的には値を充分大きく指定しておけば問題はないのでしょうが、入力された文字数に応じて要素数を適切に設定したりはできないのでしょうか?
{ char a[256];
printf("Enter a string:");
scanf("%s", a);
(以下略)
勉強中に上のような「キーボード入力からchar型配列に文字列を格納する」という処理を見かけました
この例だと(ヌル文字含め)256文字以上の文字が入力されたときはその後の処理が正常にできなくなりますよね
現実的には値を充分大きく指定しておけば問題はないのでしょうが、入力された文字数に応じて要素数を適切に設定したりはできないのでしょうか?
415はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/06(月) 17:43:57.76ID:Js6m+wFY0416デフォルトの名無しさん (ワッチョイ 2705-VQSO)
2020/07/06(月) 19:26:19.29ID:y838Udr90417デフォルトの名無しさん (ワッチョイ 1e63-BXkI)
2020/07/06(月) 19:39:29.44ID:A/JwDwXO0 後続処理で問題が起きる
418デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 19:40:44.58ID:X9mxW4kC0 a[255]=0;
419デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:42:40.45ID:sDUgop1M0 scanfは入力ミスでへんな無限ループに陥ったことがあるからなぁ。
420デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 20:45:13.65ID:X9mxW4kC0 それはscanfの問題?
421デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:50:02.85ID:sDUgop1M0 入力バッファに改行が残って云々ってことらしい。
422デフォルトの名無しさん (ワッチョイ 0a0e-VQSO)
2020/07/07(火) 06:45:34.69ID:hl3O6vw80 scanfの問題ではないね
!=EOFなんて書くバカが100%悪い
!=EOFなんて書くバカが100%悪い
423デフォルトの名無しさん (ラクッペペ MMc6-fHqu)
2020/07/07(火) 07:24:10.77ID:stuZ2AfxM 入力バッファに残った改行コードが問題の場合は fflush(stdin) で吐き出さないとどうにもならない
424デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 07:43:16.74ID:bJbvn87/0 fflush() が確実に効くのは出力ストリームだけでしょ。
stdin でも使える独自拡張された環境もあるか知れんけど。
stdin でも使える独自拡張された環境もあるか知れんけど。
425デフォルトの名無しさん (ワッチョイ 1ed2-VQSO)
2020/07/07(火) 07:54:27.38ID:p6ZLMZTk0 scanf前にバッファクリアするコードあったけど、
そういうやつってパイプやリダイレクトつかっても正常作動するの?
そういうやつってパイプやリダイレクトつかっても正常作動するの?
426デフォルトの名無しさん (ラクッペペ MMc6-06wU)
2020/07/07(火) 11:09:20.23ID:qR67pRFEM パイプやリダイレクトか判定する方法がOSによって提供されてる環境なら問題ない
427はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/07(火) 12:04:22.54ID:tzlORGl20 方法が用意されててもそれをきちんと利用してるソフトが少なかったら意味ないぞ。
428デフォルトの名無しさん (スッップ Sdaa-mf8G)
2020/07/07(火) 12:19:33.35ID:/8q6WRwjd scanfをそのまま不特定多数が使うソフトに入れることなんかないんだから
正しく入力してください
で終わる
正しく入力してください
で終わる
429デフォルトの名無しさん (スップ Sd4a-xROu)
2020/07/07(火) 13:58:40.76ID:OPOprIbsd scanfを何に使うかという話と
仕様を理解して使うという話は
別問題だ
仕様を理解して使うという話は
別問題だ
430デフォルトの名無しさん (エムゾネ FFaa-A0XE)
2020/07/07(火) 14:00:00.91ID:092JXqIfF431デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 16:19:53.16ID:bJbvn87/0 scanf には * の指定子ないんだわ。
432デフォルトの名無しさん (アウアウウー Sacf-Im8i)
2020/07/07(火) 18:32:30.56ID:e1WbjzO/a * には別の意味がある。
433デフォルトの名無しさん (ワッチョイ 6b01-Wiu6)
2020/07/07(火) 19:29:43.35ID:USscR6RS0 引き数から引っ張ってくる * がないとなると
sprintf で scanf フォーマット文字列を作るということになる?のか?
sprintf で scanf フォーマット文字列を作るということになる?のか?
>>423
それは環境依存
それは環境依存
435431 (ワッチョイ 857b-4PPV)
2020/07/08(水) 06:21:59.38ID:sJ2uy93A0 >>432
scanf の * 書式指定子は「読み捨て」の指示だったね。
printf の * とは使い方が違うけど、ちゃんとある。
…存在をすっかり忘れてたよ。ありがとう。
>>433
カーニハン&パイクの『プログラミング作法』には
sprintfで書式指定文字列を作る方法が載ってるね。
下に示す例に比べれば手軽で分かりやすい。
入力文字幅がコンパイル時固定ならマクロを駆使して…
// マクロ名を「マクロの内容を表す文字列」に変換するマクロ関数
#define MACRO_TO_STR_SUB(name) #name
#define MACRO_TO_STR(name) MACRO_TO_STR_SUB(name)
#define WIDTH 15 // 入力制限字数(末尾の'\0'を含まない)
char buf[WIDTH+1]; // +1 for '\0'
scanf("%" MACRO_TO_STR(WIDTH) "s", buf);
こんな感じにできるけど、面倒でしょ。
scanf の * 書式指定子は「読み捨て」の指示だったね。
printf の * とは使い方が違うけど、ちゃんとある。
…存在をすっかり忘れてたよ。ありがとう。
>>433
カーニハン&パイクの『プログラミング作法』には
sprintfで書式指定文字列を作る方法が載ってるね。
下に示す例に比べれば手軽で分かりやすい。
入力文字幅がコンパイル時固定ならマクロを駆使して…
// マクロ名を「マクロの内容を表す文字列」に変換するマクロ関数
#define MACRO_TO_STR_SUB(name) #name
#define MACRO_TO_STR(name) MACRO_TO_STR_SUB(name)
#define WIDTH 15 // 入力制限字数(末尾の'\0'を含まない)
char buf[WIDTH+1]; // +1 for '\0'
scanf("%" MACRO_TO_STR(WIDTH) "s", buf);
こんな感じにできるけど、面倒でしょ。
436デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 06:35:08.91ID:SF9V14yC0 char fmt[(size_t)floor(log10(~(size_t)0) + 1) + 3];
char buf[256];
sprintf(fmt, "%%%llus", sizeof buf - 1);
scanf(fmt, buf);
char buf[256];
sprintf(fmt, "%%%llus", sizeof buf - 1);
scanf(fmt, buf);
437デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 09:30:02.93ID:hADFKHguF438デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:07:58.22ID:SF9V14yC0 単項#はマクロの中でしか使えない
439デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 10:11:35.43ID:hADFKHguF #define MACRO_TO_STR(name) #name
そもそもこれもだめなんですね
そもそもこれもだめなんですね
440デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:34:21.44ID:SF9V14yC0 んなわけねえだろ
なんでやねん
なんでやねん
441デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/08(水) 10:59:20.81ID:g3a6T0uX0 後でメンテが大変だぞ
半年経ったら、今の自分が他人になる
半年経ったら、今の自分が他人になる
442デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/08(水) 11:22:06.26ID:woPNJQ5aH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
443デフォルトの名無しさん (ワッチョイ cb69-6wWl)
2020/07/08(水) 11:45:14.69ID:KKQXIGLi0 #define WIDTH 10
#define MACRO_TO_STR(name) #name
MACRO_TO_STR(WIDTH)
は渡された識別子をそのまま文字列化するので "WIDTH" になる
マクロWIDTHを展開した後での文字 "10" が欲しいときは >>435 のように
一見無駄に見えるマクロのピンポンを行なう
#define MACRO_TO_STR(name) #name
MACRO_TO_STR(WIDTH)
は渡された識別子をそのまま文字列化するので "WIDTH" になる
マクロWIDTHを展開した後での文字 "10" が欲しいときは >>435 のように
一見無駄に見えるマクロのピンポンを行なう
444デフォルトの名無しさん (スップ Sd03-rJjo)
2020/07/08(水) 11:48:56.64ID:l8qeRlOJd x0000.netをNGっと
445デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 12:22:54.79ID:SF9V14yC0 ああ、そういうことか
解説dx
解説dx
446デフォルトの名無しさん (ワッチョイ 35e6-ucCN)
2020/07/08(水) 13:27:10.12ID:0ZaAZSr60 >>428
その「正しく入力してください」に至らないのが今回の話題
その「正しく入力してください」に至らないのが今回の話題
447デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/08(水) 16:37:27.08ID:mO8IXR2n0 >>444
まだやってなかったのか?
まだやってなかったのか?
448デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/08(水) 17:48:03.59ID:T5O+XOTRd449デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:06:49.38ID:EQ9tLW1C0 不正入力ではなくてコンソールと入力バッファの仕様が問題
標準入力stdinがキーボードの場合入力バッファには目的とする文字コードの直後に必ず改行コードが残る
scanfの書式が%dなどの数値型だと改行は取り込まれないので数値型を連続して使用した場合は型が合わずに続くデータを取りこぼす
標準入力stdinがキーボードの場合入力バッファには目的とする文字コードの直後に必ず改行コードが残る
scanfの書式が%dなどの数値型だと改行は取り込まれないので数値型を連続して使用した場合は型が合わずに続くデータを取りこぼす
450デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 18:11:07.83ID:SF9V14yC0 ん、%dは先行する空白類文字をスキップするぞ
451デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/08(水) 18:25:39.71ID:QndvSIjd0 >>449
正しい入力で正しく動かないならそれはバグだよ
正しい入力で正しく動かないならそれはバグだよ
452デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:29:27.69ID:EQ9tLW1C0 訂正
たしかに数値型だけなら問題はないね
数値型と文字型の混在時に問題が起きる
scanf("%d", &x); // 数値 + 改行
...
scanf("%c", &y); // 必ず直前の改行となるので入力不可
...
scanf("%d", &z); // 数値 + 改行
たしかに数値型だけなら問題はないね
数値型と文字型の混在時に問題が起きる
scanf("%d", &x); // 数値 + 改行
...
scanf("%c", &y); // 必ず直前の改行となるので入力不可
...
scanf("%d", &z); // 数値 + 改行
453デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 09:32:01.69ID:vrNDocOmF 無理にscanf使わずに
fgetsとsscanfやろ
fgetsとsscanfやろ
454デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 09:45:13.42ID:jzluGOwX0 またアホが湧いた
455デフォルトの名無しさん (ワッチョイ 23ad-Bqa1)
2020/07/09(木) 09:51:17.63ID:RjpwDZh+0 Windows10proでC使いたいんです。
目的は大量のテキストデータの変換なので、
グラフィックとか音とかはプログラミングしません。
テキストでコーディングして、
CUIで実行ってな感じができればいいんですけど、
このぐらいだとMinGWが適当なんでしょうか?
目的は大量のテキストデータの変換なので、
グラフィックとか音とかはプログラミングしません。
テキストでコーディングして、
CUIで実行ってな感じができればいいんですけど、
このぐらいだとMinGWが適当なんでしょうか?
456デフォルトの名無しさん (ワッチョイ ad7c-jFjK)
2020/07/09(木) 09:57:12.39ID:uQo6bqoB0 tdm-gcc
457デフォルトの名無しさん (ワッチョイ 23a5-T5iX)
2020/07/09(木) 09:57:39.86ID:f5aLRaXK0458デフォルトの名無しさん (ワッチョイ 233d-Bqa1)
2020/07/09(木) 10:57:01.79ID:g1m/M0Pb0459デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 11:04:23.27ID:vrNDocOmF 一行目も二行目も知ってる
460デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 12:36:53.26ID:ccQ+p+MVM461デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/09(木) 12:39:21.11ID:zi4hgNgDd 初心者教育でとりあえずコードを書い動かしてみる
でscanfじゃなきゃ何を使えって?
でscanfじゃなきゃ何を使えって?
462デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:41:37.65ID:jzluGOwX0 >>460
対策しようのない欠陥と自分で言いながら何が正しいとぬかす?
対策しようのない欠陥と自分で言いながら何が正しいとぬかす?
463蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-FiFk)
2020/07/09(木) 12:42:19.97ID:2UhyUN9nd fgets
464デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:48:17.81ID:jzluGOwX0 配列もFILE構造体も教えてない時点でfgetsとsscanfとか無理だろ
逆にこの辺まで教えてまだ実用的な入力関数が作れないようなら教え方が下手すぎ
逆にこの辺まで教えてまだ実用的な入力関数が作れないようなら教え方が下手すぎ
465デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:49:49.88ID:jzluGOwX0 つーか、その被害者がいつまでもfgetsとsscanfにしがみついたまま進歩しないんだろうが
466デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:17:37.22ID:ccQ+p+MVM467デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:18:31.71ID:ccQ+p+MVM >>465
お前みたいな老害はそうなのかもなw
お前みたいな老害はそうなのかもなw
468デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 16:18:37.55ID:jzluGOwX0469デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/09(木) 16:39:16.37ID:8CMntJuyF scanf要らねと思ったら後はgetcharで何でも出来るだろ
470デフォルトの名無しさん (ドコグロ MMa9-65sm)
2020/07/09(木) 18:22:16.49ID:EQDklninM471デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 18:51:05.00ID:jzluGOwX0 >>470
罵倒だけのレスもらうと優越感で気持ちいいわ
罵倒だけのレスもらうと優越感で気持ちいいわ
472デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/09(木) 19:04:00.56ID:g5p2N13I0 代案出さずに否定だけって
ダサい
ダサい
473デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 19:22:40.81ID:0UE7wqUeM 罵倒だけの>>468みたいなレスを見ても別に優越感なんて感じないけどね
むしろ憐れみしか感じないw
むしろ憐れみしか感じないw
474デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:17:48.63ID:jzluGOwX0475デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:18:33.10ID:jzluGOwX0 ここ技術板だぜ? 少なくとも何らか専門用語入れようや
476デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/09(木) 22:17:39.65ID:bcr0ax7J0 > 罵倒だけのレスもらうと優越感で気持ちいいわ
どこに専門用語があるんだろう…?
ますます哀れに思えてきたわw
どこに専門用語があるんだろう…?
ますます哀れに思えてきたわw
477デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 06:59:30.23ID:d1dEL6aU0 技術的な話で突っ込めなくなってる無様な姿が最高の褒め言葉さ
478デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:01:07.48ID:d1dEL6aU0 fgetsとsscanfを使うのが正しい!と強弁してるだけで説得力ねえんだよ
479デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 07:40:55.73ID:qqWcHkmP0 >>478
scanf使うならfgetsとsscanf使えって話が出ただけでないの?
scanf使うならfgetsとsscanf使えって話が出ただけでないの?
480デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:44:14.14ID:d1dEL6aU0 scanfの使い方の話をしてたんだよ
そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た
そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た
481デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:49:10.16ID:d1dEL6aU0 464あたりでscanfを使う理由をちゃんと説明しているのに
そこは無視してくだらねえ戯れ言ばかりぬかしやがる
そこは無視してくだらねえ戯れ言ばかりぬかしやがる
482デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 07:54:54.37ID:7RoGj1wV0 >>464はscanfを使う理由ではない
483デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 08:08:34.80ID:d1dEL6aU0 だから何の説明もなしにdisっても説得力ねえんだってば
484デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:09:27.01ID:a7Xsl7M10 scanf使いたいなら割り切って使うか、それで起こる問題を解決したいなら別の関数使えって流れじゃないの?
モメるポイントが分からんのだが。
モメるポイントが分からんのだが。
485デフォルトの名無しさん (ワッチョイ 857b-4PPV)
2020/07/10(金) 08:10:39.67ID:bFyJThgA0 >>414 の質問に戻ると getchar あたりで1字ずつ拾いながら
必要に応じてバッファを拡張する方法になるのかねぇ。
%s の機能だけなら空白と空白以外だけ考慮すりゃいいわけで。
ロケールまで対応させるとこれまた大変そうだけど。
必要に応じてバッファを拡張する方法になるのかねぇ。
%s の機能だけなら空白と空白以外だけ考慮すりゃいいわけで。
ロケールまで対応させるとこれまた大変そうだけど。
486デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:22:02.59ID:a7Xsl7M10 >>485
入力した文字列を何に使うのか次第だろう。
入力すること自体は手段であって目的ではないのだから。
オンメモリに全部展開しないといけない用途なのか?
ハッシュを求めるために計算済みの値は捨てていいのか?
暗号化のために一定のブロック長があればいいのか?
適した方法はそれぞれ異なる。
んでその当初の質問の答えは既に出てるし。
入力した文字列を何に使うのか次第だろう。
入力すること自体は手段であって目的ではないのだから。
オンメモリに全部展開しないといけない用途なのか?
ハッシュを求めるために計算済みの値は捨てていいのか?
暗号化のために一定のブロック長があればいいのか?
適した方法はそれぞれ異なる。
んでその当初の質問の答えは既に出てるし。
487デフォルトの名無しさん (ワッチョイ e31e-x8q3)
2020/07/10(金) 09:04:58.78ID:lyRh4kcU0 「getchar あたりで1字ずつ拾いながら」
ってことを経た後でないと scanf を正しく使うのは難しいんじゃないかな。
ってことを経た後でないと scanf を正しく使うのは難しいんじゃないかな。
488デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 11:08:56.61ID:2/CcitmbF489デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:21:34.56ID:qqWcHkmP0 >>488
実際そうかなと思うよ。他の人の話の興味が移ってきてるのにじずんの言いたいことが正しい
実際そうかなと思うよ。他の人の話の興味が移ってきてるのにじずんの言いたいことが正しい
490デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:22:21.30ID:qqWcHkmP0 途中で書き込んでしまった。
自分の言いたいことが正しい、他のことを話す奴は理会できてないって思考なんだろう。
自分の言いたいことが正しい、他のことを話す奴は理会できてないって思考なんだろう。
491デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 11:37:03.81ID:g0Z+ZvbJa めんどくせえから GNU のライブラリにある getline() でも使っとけよ。
1行がどんなに長くてもメモリが許す限りどんどん読んでくれるぞ。
1行がどんなに長くてもメモリが許す限りどんどん読んでくれるぞ。
492デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 11:47:09.11ID:MPjC4RwwM 関数を呼び出す側が、使用するメモリの上限をコントロールできないというのは
それはそれで微妙にリスク
それはそれで微妙にリスク
493デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:00:38.40ID:g0Z+ZvbJa じゃあfgets()で。
494デフォルトの名無しさん (ワッチョイ cbd2-ucCN)
2020/07/10(金) 12:23:02.32ID:y8IP2wTs0 誰にも迷惑かからないところでどう使おうかは自由だな。
495デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:23:50.72ID:d1dEL6aU0496デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 12:26:34.82ID:a7Xsl7M10497デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:28:13.10ID:d1dEL6aU0498デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:28:33.38ID:6/cNdm0nd 入門書でscanfを扱うのが適切か否か
499デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 12:31:35.35ID:2/CcitmbF getchar()からが良い
scanf()は反面教師
scanf()は反面教師
500デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:32:24.53ID:6/cNdm0nd 数値入力にたどりつくまでえらい大変だな
501デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:45:54.18ID:Y8Yy4fdKa まあ、scanf()の%sだけが問題なんだよな。
502デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:47:54.13ID:d1dEL6aU0503デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 12:55:06.27ID:qqWcHkmP0 >>498
入門書のプログラムは基本的に使うのは読者本人だから、お手軽な入力処理として使うのはありだと思う。ただ、使い方の注意点は簡単に補足しておいてほしいかな。知らずに、固まった!バグだ!とか騒いだりしないように。
それと、入門書の時点で堅牢な入力処理なんて必要ではないけど、将来的に実用的なプログラムを作るときには必要になってくるということを触れておいてほしい。
入門書のプログラムは基本的に使うのは読者本人だから、お手軽な入力処理として使うのはありだと思う。ただ、使い方の注意点は簡単に補足しておいてほしいかな。知らずに、固まった!バグだ!とか騒いだりしないように。
それと、入門書の時点で堅牢な入力処理なんて必要ではないけど、将来的に実用的なプログラムを作るときには必要になってくるということを触れておいてほしい。
504デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 13:37:44.03ID:d1dEL6aU0505デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/10(金) 13:40:12.53ID:pQ428/DjH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
506デフォルトの名無しさん (ワッチョイ 0391-LoFw)
2020/07/10(金) 13:54:36.12ID:cHuUURyg0 俺に聞け! ってだけで
回答するとは言っていない
回答するとは言っていない
507デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/10(金) 14:21:32.04ID:/uHfdbTha 確かに>>1の概要欄にも答えるとは一文字も書かれて無いw
508デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 18:44:30.98ID:d1dEL6aU0 そこへ逃げるかwww
509デフォルトの名無しさん (オイコラミネオ MM51-L1/G)
2020/07/10(金) 18:55:09.14ID:rYXxVyEBM510デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 19:00:44.43ID:7RoGj1wV0 言い出しっぺの法則
512デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 22:08:00.13ID:edpv1F1UM >>511
QZ先生がどのくらいのリスクを前提に言っているのかにもよりますけど、
上限なき malloc については、リスク回避の点で、私はやっぱり問題にしたいですねえ。
おっしゃる通り、malloc が失敗を返した場合は概ね問題ないと思うのですが。
逆に malloc が成功を返した場合はどうです?
共有リソースとしてのメモリを奪いきってしまった結果としての成功であるなら、
OSによっては、他のプロセスのメモリ確保失敗に伴う致命的エラーを誘発するなどして、
広範囲な問題を引き起こすやもしれません。
先人の知恵として、システムコールやAPIの仕様として、インターフェイスにせよ、内部的にせよ、上限を設けてあると思います。
getline の内部は見てないのですが、極端に大きなサイズになりそうなら、malloc を呼び出す前に、
上限値を超えました的なエラーを返すような、慎重なコーディングになっていることを期待したいところです
QZ先生がどのくらいのリスクを前提に言っているのかにもよりますけど、
上限なき malloc については、リスク回避の点で、私はやっぱり問題にしたいですねえ。
おっしゃる通り、malloc が失敗を返した場合は概ね問題ないと思うのですが。
逆に malloc が成功を返した場合はどうです?
共有リソースとしてのメモリを奪いきってしまった結果としての成功であるなら、
OSによっては、他のプロセスのメモリ確保失敗に伴う致命的エラーを誘発するなどして、
広範囲な問題を引き起こすやもしれません。
先人の知恵として、システムコールやAPIの仕様として、インターフェイスにせよ、内部的にせよ、上限を設けてあると思います。
getline の内部は見てないのですが、極端に大きなサイズになりそうなら、malloc を呼び出す前に、
上限値を超えました的なエラーを返すような、慎重なコーディングになっていることを期待したいところです
513はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 053e-ucCN)
2020/07/10(金) 23:07:47.23ID:HDImBgbn0 >>511
実行環境に固有の特殊事情ではあるけど
Linux だとメモリが足りなくても malloc が成功する場合がある。 (オーバーコミット)
malloc の返り値を気にしても無駄。
想定以上の巨大な行の読み込み (メモリ割り当ての失敗) に対して
何か対処する機会なくプロセスごと殺される (OOM Killer) かもしれないので、
想定する上限があるなら設定できて欲しいよ。
実行環境に固有の特殊事情ではあるけど
Linux だとメモリが足りなくても malloc が成功する場合がある。 (オーバーコミット)
malloc の返り値を気にしても無駄。
想定以上の巨大な行の読み込み (メモリ割り当ての失敗) に対して
何か対処する機会なくプロセスごと殺される (OOM Killer) かもしれないので、
想定する上限があるなら設定できて欲しいよ。
514デフォルトの名無しさん (ワッチョイ 2301-LRpg)
2020/07/11(土) 00:41:24.74ID:UdJEarb20 ドライバレベルの仕様に詳しい人って、そこそこ不幸だよね😅
515デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/11(土) 00:58:32.96ID:YkgvwUMV0 誰かが特攻隊に志願しないと行けないからな
516デフォルトの名無しさん (ワッチョイ 45bd-L1/G)
2020/07/11(土) 04:47:05.81ID:dhYEJgZ00 >>513
メモリを確保するだけじゃなく中身を詰めて返すから、内部でメモリ量を超える malloc に成功しながら中身を詰めてる過程でメモリ不足で落ちそうだね。
上限設けてないと回避できない深刻な問題になりそう。
メモリを確保するだけじゃなく中身を詰めて返すから、内部でメモリ量を超える malloc に成功しながら中身を詰めてる過程でメモリ不足で落ちそうだね。
上限設けてないと回避できない深刻な問題になりそう。
517デフォルトの名無しさん (ワッチョイ 8510-YwU+)
2020/07/11(土) 20:25:40.62ID:3ggQxlyq0 mallocはウィザードリィみたいだよな
518デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/12(日) 11:24:42.19ID:VdrMQ+ag0 >>517
どの辺が?
どの辺が?
519デフォルトの名無しさん (ワッチョイ 05da-mXGD)
2020/07/12(日) 12:22:43.74ID:pMv4WACh0 >>518
岩の中にテレポートしそうなあたりじゃないかな
岩の中にテレポートしそうなあたりじゃないかな
520デフォルトの名無しさん (ワッチョイ 75b0-ucCN)
2020/07/12(日) 12:31:19.68ID:lQJaWZP00 そういえば、初期のosxはオーバーコミットと動的スワップの合わせ技で、ディスクの空き容量が
少ないとよく固まってたな。しかもfinderではまだ空きがあるように見えても実際には最小空き容量に
引っかかるという油断のならない仕様だった。
少ないとよく固まってたな。しかもfinderではまだ空きがあるように見えても実際には最小空き容量に
引っかかるという油断のならない仕様だった。
521デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 14:47:47.78ID:RLT83ouV0 マクロを使った面白いコードを教えてください
522デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/12(日) 14:50:59.64ID:uGVzSaa20 先に面白いの判定基準を出せ
523デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 14:55:11.44ID:RLT83ouV0 >>522
トリッキーなやつで普段お目にかかれないやつです
トリッキーなやつで普段お目にかかれないやつです
524デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 16:14:17.46ID:TX1mpKr60525デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 16:26:56.92ID:RLT83ouV0526デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 16:34:02.06ID:TX1mpKr60 自分で解読しなきゃ
他人に聞いたら意味ないよ
他人に聞いたら意味ないよ
527デフォルトの名無しさん (ワッチョイ 7546-Dz1Y)
2020/07/12(日) 18:07:11.46ID:eOx5QXnj0528デフォルトの名無しさん (ブーイモ MM99-Kmjx)
2020/07/12(日) 19:01:50.30ID:XR2tpNWXM 落ち着け、IOCCC知らんのか
529デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/12(日) 19:40:25.98ID:uGVzSaa20 昔観た砂嵐のもこんなんだったな
マクロ使ってたかどうかは覚えてないけど
いずれにしても中身に意味があるとは思えない
マクロ使ってたかどうかは覚えてないけど
いずれにしても中身に意味があるとは思えない
530デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 19:48:29.22ID:TX1mpKr60 地上波アナログ?
531デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/13(月) 09:07:37.15ID:+mCuetAH0 落ち着け、IOCCC知らんのか
532デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/13(月) 11:02:55.12ID:wLJMlZf60 わざと解りにくく書いたコードだぞ
「ちゃんと動くプログラム」という制約のもとで
解りにくさを競っているんだよ
「ちゃんと動くプログラム」という制約のもとで
解りにくさを競っているんだよ
533デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/13(月) 11:11:26.83ID:Q6XHo6fua >>525
岩の中にテレポートしそうなあたりじゃないかな
岩の中にテレポートしそうなあたりじゃないかな
534デフォルトの名無しさん (スッップ Sd43-Tflg)
2020/07/13(月) 12:02:49.97ID:JZTlaHWid >>527
素人かよ
素人かよ
535デフォルトの名無しさん (エムゾネ FF43-jFjK)
2020/07/13(月) 12:06:46.27ID:WBkWHxcTF >>527 本人じゃないけど
成型ツールで戻せば良いとか言うレベルじゃなくて
マジックナンバー使いまくりの手動最適化コードとか
読み難くする以外のメリットなんにも無い時間の無駄
難読化ツールとかの話も関係無い
成型ツールで戻せば良いとか言うレベルじゃなくて
マジックナンバー使いまくりの手動最適化コードとか
読み難くする以外のメリットなんにも無い時間の無駄
難読化ツールとかの話も関係無い
536デフォルトの名無しさん (スッップ Sd43-Tflg)
2020/07/13(月) 12:12:02.64ID:JZTlaHWid 人間が読む事を想定してないコード
なんていう発想は無いのか
なんていう発想は無いのか
537デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/13(月) 12:18:07.92ID:wLJMlZf60 機械語がそうだね
538デフォルトの名無しさん (ワッチョイ cbd2-ucCN)
2020/07/13(月) 12:20:50.91ID:HqaSJoay0 難読ソースコンテストってのがあるって25年前に聞いた。
539デフォルトの名無しさん (エムゾネ FF43-jFjK)
2020/07/13(月) 12:22:42.17ID:WBkWHxcTF どんなネタでも餌にして生きていける人って別の意味で浦山
540デフォルトの名無しさん (ワッチョイ 857b-4PPV)
2020/07/13(月) 12:39:50.37ID:17o/9bhC0 って言うか >>1 でリンク張られてるサイト
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
の 20.36 が 国際難解Cコードコンテスト(IOCCC) の紹介ですよ。
まぁ知らなくても実用では少しも困らないネタ話だけどね。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
の 20.36 が 国際難解Cコードコンテスト(IOCCC) の紹介ですよ。
まぁ知らなくても実用では少しも困らないネタ話だけどね。
541デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/13(月) 13:06:29.12ID:UIoR1/02H IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
542デフォルトの名無しさん (ワッチョイ 23ad-skOr)
2020/07/13(月) 23:11:58.86ID:9EBd4T6S0 >>540
読み方は?
読み方は?
543デフォルトの名無しさん (スップ Sdda-BbQx)
2020/07/15(水) 14:29:54.86ID:U8iX10oDd あいおーしーしーしー
544デフォルトの名無しさん (ワッチョイ 5510-Zd+S)
2020/07/15(水) 15:00:37.70ID:67nW9VWC0 催し物やな
545デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 15:52:55.55ID:N3ltiDOr0 市民館みたいなとこでやってるわけじゃないがな
546デフォルトの名無しさん (ワッチョイ daad-0yBj)
2020/07/15(水) 20:44:36.96ID:pJ20MS8a0 CCCの部分はトリプルCではなく?
547デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 20:50:18.41ID:N3ltiDOr0 うん、トリプルって読み方する人には会ったことがないな
548デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 20:50:51.37ID:N3ltiDOr0 あいとりぷるいーは普通だけど
549デフォルトの名無しさん (ブーイモ MMde-cWPK)
2020/07/15(水) 21:08:27.18ID:a3wypoikM このクイズ番組の回答者が読み方喋ってる
https://youtu.be/f7WPP-5GG58
https://youtu.be/f7WPP-5GG58
550デフォルトの名無しさん (ワッチョイ 41b3-6M5R)
2020/07/15(水) 21:53:44.85ID:JGqdiMCl0551デフォルトの名無しさん (アウアウエー Sa02-l+/r)
2020/07/16(木) 00:44:59.58ID:ZFOOaYp/a >>546
カルチュアコンビニエンスクラブ
カルチュアコンビニエンスクラブ
552デフォルトの名無しさん (ワッチョイ 9de6-YsWi)
2020/07/16(木) 04:02:23.42ID:CYft8xDJ0 >>550
イェェェ!!
イェェェ!!
553デフォルトの名無しさん (ワッチョイ 6905-YsWi)
2020/07/16(木) 09:30:43.69ID:UNVzIGjY0 >>548
イエエエ!
イエエエ!
554デフォルトの名無しさん (ワッチョイ ee8c-+zMD)
2020/07/16(木) 09:34:53.50ID:+sr/NO6P0 >>548
アイドルぷりぷり
アイドルぷりぷり
555デフォルトの名無しさん (ワッチョイ daad-YsWi)
2020/07/16(木) 22:21:03.87ID:HOuHYCld0 東京が goto キャンペーンから外されて本当に良かった。
>>555
goto hell キャンペーン?
goto hell キャンペーン?
557デフォルトの名無しさん (ワッチョイ daad-YsWi)
2020/07/16(木) 23:23:34.12ID:HOuHYCld0 東京以外は goto を使ったCプログラムで溢れかえるんだろうなあ・・・
558デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/16(木) 23:59:23.84ID:miG5Ngn20 すべてのreturnは東京に帰る
559デフォルトの名無しさん (アウアウエー Sa02-rGUB)
2020/07/17(金) 00:08:23.19ID:UXHw+Bbza exit((int) "TOKYO");
560デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/17(金) 06:35:08.70ID:FmIaoXoT0 令和のgoto有害説
561デフォルトの名無しさん (ワッチョイ 752d-sTnA)
2020/07/17(金) 08:41:43.61ID:UlzyaY8x0 gotoとラベル
562デフォルトの名無しさん (スップ Sdda-BbQx)
2020/07/17(金) 09:09:08.77ID:+XePIYq+d うまいな
563デフォルトの名無しさん (アウアウウー Sa39-lbAa)
2020/07/17(金) 20:54:53.28ID:TuO7NpMNa くっ。やられた。
私の負けを認めよう。
私の負けを認めよう。
564デフォルトの名無しさん (ワッチョイ c628-UH/d)
2020/07/18(土) 12:46:51.82ID:PyiwbgQS0 奥村先生が書いてらっしゃる
「いまさらC言語」
https://scrapbox.io/imasaraC/
って、「初学者がC言語を学ぶ」という目的にはそぐいますか?
偉そうな言い方なんですけど、C言語の基礎を一通りなぞる感じには見えませんでした。
ですが、もしもC言語の基礎をこの記事で勉強できるなら、
奥村先生直筆の日本語文書ですし、ぜひ参考にさせていただきたいのです。
「いまさらC言語」
https://scrapbox.io/imasaraC/
って、「初学者がC言語を学ぶ」という目的にはそぐいますか?
偉そうな言い方なんですけど、C言語の基礎を一通りなぞる感じには見えませんでした。
ですが、もしもC言語の基礎をこの記事で勉強できるなら、
奥村先生直筆の日本語文書ですし、ぜひ参考にさせていただきたいのです。
565デフォルトの名無しさん (アウウィフ FF39-L8bc)
2020/07/18(土) 12:56:27.17ID:uRU3MGLxF 散文っぽくて体系的じゃない感じは受けた
「いまさら」であって「初めての」ではないので文字通り受け取って
既に知ってる人が改めて見直す機会には良いんじゃね
scanf
https://scrapbox.io/imasaraC/scanf()
fgets
https://scrapbox.io/imasaraC/fgets()
「いまさら」であって「初めての」ではないので文字通り受け取って
既に知ってる人が改めて見直す機会には良いんじゃね
scanf
https://scrapbox.io/imasaraC/scanf()
fgets
https://scrapbox.io/imasaraC/fgets()
566デフォルトの名無しさん (ワッチョイ c628-UH/d)
2020/07/18(土) 15:06:19.54ID:PyiwbgQS0567デフォルトの名無しさん (ワッチョイ ee8c-G2ah)
2020/07/21(火) 00:25:21.83ID:Wl7zo7XN0 すっごいポンコツPCでmacでCSV作って作ったの読み込んで計算して表示してって10回ぐらい繰り返したら同じデータ表示されるの?
568デフォルトの名無しさん (ブーイモ MMa1-cWPK)
2020/07/21(火) 00:30:45.40ID:Y7gEkUNqM ポンコツだとたまに計算間違うから無理じゃないかなあ
569蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdfa-ch6b)
2020/07/21(火) 00:32:52.06ID:iLwMnecKd >>567
本当にポンコツであれば、主メモリーかHDDが壊れている可能性がある。
本当にポンコツであれば、主メモリーかHDDが壊れている可能性がある。
570デフォルトの名無しさん (ワッチョイ ee8c-G2ah)
2020/07/21(火) 00:34:45.78ID:Wl7zo7XN0 >>567
なんかこんな環境でやったらCSVのデータが更新されなくて10回全部同じ計算になってるって事が起きたから
やった人はsleepで遅らせたら変化したって言ってたからそんなことが起きる事があるのかって不思議に思ったわ
なんかこんな環境でやったらCSVのデータが更新されなくて10回全部同じ計算になってるって事が起きたから
やった人はsleepで遅らせたら変化したって言ってたからそんなことが起きる事があるのかって不思議に思ったわ
571はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 693e-hHzd)
2020/07/21(火) 01:27:00.90ID:VthsC7AN0 メモリは思ったより信用できない (ちょいちょい化ける) という話を
何かのウェブブラウザ関連の文章で読んだことがあるような
気がするんだけど思い出せない。
何かのウェブブラウザ関連の文章で読んだことがあるような
気がするんだけど思い出せない。
572デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/21(火) 01:41:36.17ID:bmKYQrdR0 おじいちゃん
573デフォルトの名無しさん (ワッチョイ 7663-GoP2)
2020/07/21(火) 02:56:31.73ID:i26SyfyA0 簡単に化けるから誤り検出符号なるものが存在している
HDDはもちろんメモリだって物理的に劣化する
HDDはもちろんメモリだって物理的に劣化する
574デフォルトの名無しさん (ラクッペペ MM0e-M824)
2020/07/21(火) 03:18:48.82ID:e/mkPZH8M575デフォルトの名無しさん (ワントンキン MMea-rqus)
2020/07/21(火) 03:19:15.76ID:z3AOQZxtM ディスクキャッシュでなかったかな。
毎度syncするようなkernelパラメータか何かを与えないと旧データを読み出すような事象が昔あったような。
毎度syncするようなkernelパラメータか何かを与えないと旧データを読み出すような事象が昔あったような。
576デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/21(火) 08:19:11.51ID:6CpMqD4P0577デフォルトの名無しさん (オッペケ Sr75-J55X)
2020/07/21(火) 17:26:30.39ID:TSoseUQ7r C言語を3ヶ月前から勉強し始めたものです。この間、C言語3級を受験しました。
C言語かなり難しいです。
苦労しながらC言語学んだ方いますか?
C言語かなり難しいです。
苦労しながらC言語学んだ方いますか?
578デフォルトの名無しさん (ワッチョイ 69bb-zSg9)
2020/07/21(火) 17:28:45.77ID:aESJfhai0 はい
なんでしょう
なんでしょう
579デフォルトの名無しさん (オッペケ Sr75-J55X)
2020/07/21(火) 17:30:55.73ID:TSoseUQ7r 安心しました
がんばります
がんばります
580デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/21(火) 17:30:56.37ID:6CpMqD4P0 苦労せずに学んだやつなんているのか?
元々アセンブラ屋でアドレスやポインタが当たり前だった俺でさえ
それなりに脂汗かきながら憶えたぞ
元々アセンブラ屋でアドレスやポインタが当たり前だった俺でさえ
それなりに脂汗かきながら憶えたぞ
581デフォルトの名無しさん (ワッチョイ 95ca-ebQW)
2020/07/21(火) 18:13:57.71ID:zwiBtbEn0 独学で始めたからリンカの使い方とかよく分からず、C のソースを全部 include してたな。
582デフォルトの名無しさん (ワッチョイ 7646-NUPd)
2020/07/21(火) 19:46:32.95ID:tvr2GUf40 >>581
nanisore. 面白い。詳しく。
nanisore. 面白い。詳しく。
583デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/21(火) 20:00:00.53ID:bmKYQrdR0 多分分割コンパイルのやり方を知らなかった頃の話だろう
584デフォルトの名無しさん (ワッチョイ 95ca-ebQW)
2020/07/21(火) 20:10:11.93ID:zwiBtbEn0585デフォルトの名無しさん (アウアウエー Sa02-rGUB)
2020/07/21(火) 22:42:16.68ID:nbzaQebba 依存ファイル集める方がよほど知識が要りそう
586デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:51:53.55ID:xRlBM5RB0 このコード最適化の余地ある?-O3でやっても1900msとかかかるんだけど
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int f(int size, int *data1, int *data2) {
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data1[i] & data2[i];
}
}
return r;
}
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int f(int size, int *data1, int *data2) {
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data1[i] & data2[i];
}
}
return r;
}
587デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:52:29.23ID:xRlBM5RB0 int main(int argc, char *argv[]) {
int size = 1000 * 1000 * 100;
int *data1 = (int*) malloc(size * sizeof(int));
int *data2 = (int*) malloc(size * sizeof(int));
//setup test data
srand((int) time(NULL));
for (int i = 0; i < size; i++) {
data1[i] = rand();
data2[i] = rand();
}
int sec, millisec;
struct timeb timebuffer;
//start
ftime(&timebuffer);
sec = timebuffer.time;
millisec = timebuffer.millitm;
int size = 1000 * 1000 * 100;
int *data1 = (int*) malloc(size * sizeof(int));
int *data2 = (int*) malloc(size * sizeof(int));
//setup test data
srand((int) time(NULL));
for (int i = 0; i < size; i++) {
data1[i] = rand();
data2[i] = rand();
}
int sec, millisec;
struct timeb timebuffer;
//start
ftime(&timebuffer);
sec = timebuffer.time;
millisec = timebuffer.millitm;
588デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:52:35.64ID:xRlBM5RB0 // benchmark
int r = f(size, data1, data2);
// end
ftime(&timebuffer);
sec = timebuffer.time - sec;
millisec = timebuffer.millitm - millisec;
millisec += sec * 1000;
printf("%d ms \n %d", millisec, r);
free(data1);
free(data2);
}
int r = f(size, data1, data2);
// end
ftime(&timebuffer);
sec = timebuffer.time - sec;
millisec = timebuffer.millitm - millisec;
millisec += sec * 1000;
printf("%d ms \n %d", millisec, r);
free(data1);
free(data2);
}
589デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:01:48.88ID:lGyqioywH f()で0返せばいいんじゃね?
590デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:06:36.57ID:xRlBM5RB0 たしかにrが0になるが
たぶんsrand, randで値の分布が一様じゃないせいか?
Javaとの性能比較してたんだけど乱数生成法が合わせれないな
たぶんsrand, randで値の分布が一様じゃないせいか?
Javaとの性能比較してたんだけど乱数生成法が合わせれないな
591デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:07:57.00ID:xRlBM5RB0 あ違うなsizeがでかすぎると0になっちゃうのか
592デフォルトの名無しさん (ワッチョイ 69e6-5TCi)
2020/07/22(水) 16:11:34.79ID:1buRSft90 Java(VM)とCという言語の比較をしたいのかこのソースを最適化したいのかrandの仕様を統一したいのか意味不明だわ
593デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:21:46.25ID:xRlBM5RB0 JavaとCの性能比較で「Javaは高速だCに負けてない」とか
「JITやGCが動作する時に遅くなるだけだ」とか良く言われてる。
でもこういう単純な配列処理でCの方が3倍くらい速いよな、と思って。
この処理は計測中にヒープ割当が無いからGC関係ない(Javaでオブジェクトを作成するとGCのためのオーバーヘッドがあるらしい)。
JavaでJIT効かせてから計測してもCが4倍弱速かった。
最初1900msもかかるといってたのは勘違い。Cの方が4倍弱速いから予想通りの性能だった。
Javaの性能に関する言説を見渡しても、なぜこういう処理でJavaが遅いのか説明が無い。
大量のデータを処理しつつ特定の値に収束しない良いベンチマークコードがあればいいんだが。
足す引きを交互に繰り返すか。
「JITやGCが動作する時に遅くなるだけだ」とか良く言われてる。
でもこういう単純な配列処理でCの方が3倍くらい速いよな、と思って。
この処理は計測中にヒープ割当が無いからGC関係ない(Javaでオブジェクトを作成するとGCのためのオーバーヘッドがあるらしい)。
JavaでJIT効かせてから計測してもCが4倍弱速かった。
最初1900msもかかるといってたのは勘違い。Cの方が4倍弱速いから予想通りの性能だった。
Javaの性能に関する言説を見渡しても、なぜこういう処理でJavaが遅いのか説明が無い。
大量のデータを処理しつつ特定の値に収束しない良いベンチマークコードがあればいいんだが。
足す引きを交互に繰り返すか。
594デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/22(水) 16:24:26.21ID:t6q0HDDX0 >>586
data1[i] & data2[i] の計算を100回もやることはないから
int f(int size, int *data1, int *data2) {
int *data3 = (int*) malloc(size * sizeof(int));
for (int i = 0; i < size; i++) {
data3[i] = data1[i] & data2[i];
}
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data3[i];
}
}
free(data3);
return r;
}
ってやると多少速くなるかも
あとは分割してスレッドで並行して実行するとかかな
data1[i] & data2[i] の計算を100回もやることはないから
int f(int size, int *data1, int *data2) {
int *data3 = (int*) malloc(size * sizeof(int));
for (int i = 0; i < size; i++) {
data3[i] = data1[i] & data2[i];
}
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data3[i];
}
}
free(data3);
return r;
}
ってやると多少速くなるかも
あとは分割してスレッドで並行して実行するとかかな
595デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:26:57.20ID:xRlBM5RB0 これで収束しないし毎回ランダムな結果になる。
long f(int size, int *data1, int *data2) {
long r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r += data1[i] - data2[i];//ここ変えた
}
}
return r;
}
long f(int size, int *data1, int *data2) {
long r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r += data1[i] - data2[i];//ここ変えた
}
}
return r;
}
596デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:34:17.16ID:lGyqioywH なんだ、^ の意味わかってなかったのか。
ていうか、コードの最適化を求めるなら、
そのコードの目的のほうが先に存在するはずじゃないのか?
コロコロ変えてさあ最適化しろとかおかしいだろ。
ていうか、コードの最適化を求めるなら、
そのコードの目的のほうが先に存在するはずじゃないのか?
コロコロ変えてさあ最適化しろとかおかしいだろ。
597デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:39:25.22ID:xRlBM5RB0 0になってたのは^じゃなくて&が原因だろ
598デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:42:01.87ID:lGyqioywH ^ だよ
最後のやつで + を ^ にしたらどうなる?
最後のやつで + を ^ にしたらどうなる?
599デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:44:20.78ID:xRlBM5RB0 あr=0でr^=使ってたからか
演算子の意味じゃなくてr=0で始めてる事との整合性に気付いてなかった
r = rand();
r ^= data1[i] ^ data2[i]
これなら収束しないはず
演算子の意味じゃなくてr=0で始めてる事との整合性に気付いてなかった
r = rand();
r ^= data1[i] ^ data2[i]
これなら収束しないはず
600デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:46:16.22ID:lGyqioywH それ、最初の rand の値が返るだけだから。
601デフォルトの名無しさん (エムゾネ FF33-keh3)
2020/07/22(水) 16:56:43.54ID:J+LKPgcIF もしかして残念なベンチ
602デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 17:05:53.92ID:lGyqioywH 目的の明確でないベンチマーク作っても無駄だよね。
何を調べたいの?
何を調べたいの?
603デフォルトの名無しさん (ワッチョイ 69e6-5TCi)
2020/07/22(水) 17:19:08.68ID:1buRSft90 > この処理は計測中にヒープ割当が無い
って書いてあるけどガッツリ malloc してるし本当に何がしたいのか良く分からない
って書いてあるけどガッツリ malloc してるし本当に何がしたいのか良く分からない
604デフォルトの名無しさん (スププ Sd33-Y9Vl)
2020/07/22(水) 17:34:24.16ID:Y73iWKLTd 全ての値を偶数回^すれば答えは0になって当然
605デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 17:58:11.98ID:xRlBM5RB0606デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/22(水) 17:59:58.58ID:HrEyCXiAd >>586
大いに改善の余地あり
0になることを仮定せずに真面目に計算するとして
データがメモリがキャッシュに入るとすると
計算の依存関係ありまくりだから
ほぼレイテンシ待ちになる
ループ4周を展開して
rを4個に分けるだけで速くなりそう
SIMD命令が使えるなら
非常に効果がある形なので
使えるなら使う
この場合も演算の依存関係は減らすこと
データがキャッシュに収まらないなら
メモリ速度で決まるからあまり関係ない
大いに改善の余地あり
0になることを仮定せずに真面目に計算するとして
データがメモリがキャッシュに入るとすると
計算の依存関係ありまくりだから
ほぼレイテンシ待ちになる
ループ4周を展開して
rを4個に分けるだけで速くなりそう
SIMD命令が使えるなら
非常に効果がある形なので
使えるなら使う
この場合も演算の依存関係は減らすこと
データがキャッシュに収まらないなら
メモリ速度で決まるからあまり関係ない
607デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:03:43.69ID:xRlBM5RB0 代入されないんじゃなくて偶数回^すると元に戻るのか
608デフォルトの名無しさん (ブーイモ MM4d-ZQKC)
2020/07/22(水) 18:04:59.81ID:YNla03BQM609デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:09:25.81ID:xRlBM5RB0610デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:12:28.77ID:xRlBM5RB0 あーじゃあr=0で始めてたことは関係無くて、
単に二重ループの外側が偶数回だと無意味だと。
r=0で始めてもXORならちゃんとビット列変わってたけどXORの性質から元に戻ってたと。
コンパイラがそれ知ってたら最適化して処理消しちゃうから良くないな。
XORのその性質を知らなかった
単に二重ループの外側が偶数回だと無意味だと。
r=0で始めてもXORならちゃんとビット列変わってたけどXORの性質から元に戻ってたと。
コンパイラがそれ知ってたら最適化して処理消しちゃうから良くないな。
XORのその性質を知らなかった
611デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:26:49.94ID:xRlBM5RB0 より正しく述べておこう
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある
ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある
ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
612デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:26:50.13ID:xRlBM5RB0 より正しく述べておこう
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある
ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある
ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
613デフォルトの名無しさん (ブーイモ MM4d-ZQKC)
2020/07/22(水) 19:03:36.52ID:YNla03BQM かようにベンチマークっていうのは難しいんだ。
CPUの比較をするだけでもいろんな提案があって
SPECとかはなんとか信頼されているが、
言語間の性能比較とか素人が適当にでっち上げても、
そのプログラムが悪いだけじゃねってなるのがオチ。
CPUの比較をするだけでもいろんな提案があって
SPECとかはなんとか信頼されているが、
言語間の性能比較とか素人が適当にでっち上げても、
そのプログラムが悪いだけじゃねってなるのがオチ。
614デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/22(水) 21:28:34.34ID:EzFbgF7R0 最終的に 0 になるだろけど、この計算は愚直に行われるんでしょ。
答えが 0 にしかならないことと C と Java の速度差がそうなることとはまた別の話だよね。
って、コードの最適化の話だったんだっけ?
答えが 0 にしかならないことと C と Java の速度差がそうなることとはまた別の話だよね。
って、コードの最適化の話だったんだっけ?
615デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 22:22:42.43ID:xRlBM5RB0 Cがこの処理でJavaより3〜4倍速い事は確認できた。
0に収束する事とそれは無関係。
以下、一応書くけど完全にスレ違い。
このような単純な配列処理でCとJavaの速度差がなぜ生じるか?はまだ分かってない。
・HotSpotは配列の境界チェックを除去できる
・一般論としてJavaが遅くなる原因としてJITやGCが挙げられるがこの単純なプログラムではそれらの影響はない
予想
・1命令で処理できるサイズが違っている?約4倍の速度差はベクトル演算の差で説明できそう。
だとしたらなぜJavaのJITはそれをやらないか?
・CPUキャッシュの問題?Javaの場合CPUキャッシュが別の何かで埋まってしまっている可能性
0に収束する事とそれは無関係。
以下、一応書くけど完全にスレ違い。
このような単純な配列処理でCとJavaの速度差がなぜ生じるか?はまだ分かってない。
・HotSpotは配列の境界チェックを除去できる
・一般論としてJavaが遅くなる原因としてJITやGCが挙げられるがこの単純なプログラムではそれらの影響はない
予想
・1命令で処理できるサイズが違っている?約4倍の速度差はベクトル演算の差で説明できそう。
だとしたらなぜJavaのJITはそれをやらないか?
・CPUキャッシュの問題?Javaの場合CPUキャッシュが別の何かで埋まってしまっている可能性
616デフォルトの名無しさん (ワッチョイ 69e6-A04g)
2020/07/22(水) 22:30:57.82ID:1buRSft90 自分のブログでやって
617デフォルトの名無しさん (ワッチョイ d9c3-Y9Vl)
2020/07/22(水) 23:08:24.67ID:G9I2XdZp0 そもそもjavaがc/c++並に速いとか、かなり嘘や誤魔化し入っているから
速度差3-4倍で済むなら十分健闘している
javaのコードを移植して、無駄にmalloc freeしまくったりする糞コードならもっと迫れるだろうけど
速度差3-4倍で済むなら十分健闘している
javaのコードを移植して、無駄にmalloc freeしまくったりする糞コードならもっと迫れるだろうけど
618デフォルトの名無しさん (ワッチョイ 3997-nH3A)
2020/07/23(木) 02:25:27.91ID:tfGyNQFW0619デフォルトの名無しさん (ガラプー KK4d-XNsZ)
2020/07/23(木) 04:09:18.13ID:NaEhWCW1K 最初の>>586の問いがベンチマークを意図してるとは思われてなかったから{return 0;}で良いんじゃね?ってなったんでは
620デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 11:21:03.05ID:TTqTgaIL0 javaの配列は特別な宣言無しに別スレッドでこっそり書き換えてもちゃんと反映されるわけだから、単純処理であっても最適化にも限界があるだろうな。
Cの場合は、他で書き換えられるかもと指定しておかなければ他所のことなんておかまいなしに処理できるから、その点だけでも有利だよね。
>>586 のコードのなら、i のループに入る前に data[j] を変数に取り置いて i のループ内で使用するようにすれば、java の方では高速化されるんじゃね。
C ならそれをコンパイラがやってくれてそう。
Cの場合は、他で書き換えられるかもと指定しておかなければ他所のことなんておかまいなしに処理できるから、その点だけでも有利だよね。
>>586 のコードのなら、i のループに入る前に data[j] を変数に取り置いて i のループ内で使用するようにすれば、java の方では高速化されるんじゃね。
C ならそれをコンパイラがやってくれてそう。
621デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 11:24:21.68ID:TTqTgaIL0 逆にCの側で配列を volatile にしておけば Java との速度差は小さくなるかもね。
622デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 11:26:24.50ID:V2V2cZYad data[j]なんかないけど
623デフォルトの名無しさん (ブーイモ MM9d-C2Yk)
2020/07/23(木) 11:46:46.14ID:vtZyy6ICM じゃあjava.util.concurrent.atomic以下にある配列クラスは全部廃止だな
624デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 12:46:54.76ID:tYvDqilk0 ベクトル演算の未適用が原因だとほぼ特定できた。
625デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 13:17:22.41ID:V2V2cZYad626デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 13:19:58.21ID:V2V2cZYad 簡単な処理のために巨大メモリをスキャンするのは超無駄
627デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 13:51:39.59ID:tYvDqilk0 C版
size
1000*1000 * 1 20ms
1000*1000 * 10 191ms
1000*1000 * 100 1893ms
線形な変化だからCPUキャッシュに載り切るかで性能が分かれるという事が生じてない。
たぶんCPUキャッシュは「繰り返し使うデータ」じゃないと有意義じゃない。
この処理だとCPUキャッシュ上のデータを排除可能になるまでの時間がボトルネックで、
つまり「CPU上のデータを処理しきって次の要素を受け付けれるようになるまでの時間」が支配的なはずで
そこがベクトル演算で高速化してる。
Java版も線形に変化した。
で、Javaのコードでr += data1[i] + data2[i]のところでdata1のみにしたら2倍速になったからベクトル演算未適用が原因でほぼ間違いない。
その行で+か-か^か&かは結論に影響しない。
size
1000*1000 * 1 20ms
1000*1000 * 10 191ms
1000*1000 * 100 1893ms
線形な変化だからCPUキャッシュに載り切るかで性能が分かれるという事が生じてない。
たぶんCPUキャッシュは「繰り返し使うデータ」じゃないと有意義じゃない。
この処理だとCPUキャッシュ上のデータを排除可能になるまでの時間がボトルネックで、
つまり「CPU上のデータを処理しきって次の要素を受け付けれるようになるまでの時間」が支配的なはずで
そこがベクトル演算で高速化してる。
Java版も線形に変化した。
で、Javaのコードでr += data1[i] + data2[i]のところでdata1のみにしたら2倍速になったからベクトル演算未適用が原因でほぼ間違いない。
その行で+か-か^か&かは結論に影響しない。
628デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 13:55:19.10ID:TTqTgaIL0629デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 14:11:44.83ID:TTqTgaIL0 >>623
値が volatile なことと操作が atomic なことは別の話だよ。
自分が書き換えない同じ領域を複数参照するとき、それを他の誰も書き換えないならその参照は一度目の値と同じになる前提で最適化できるけど、他の誰かがいつの間にか書き換えることがあるならそういう最適化はできなくなる。
そういう領域であることを明示するのが volatile。
atomic は同じ領域を誰かが書き換える前提なので基本的にその領域は volatile だけど、それに加えて値を参照して手を加えて書き戻すなどの一連の手続きの途中で他の誰かにいじられないことを保証すること。
それを CPUレベルの命令で行うかソフトウェア的なロックで行うかで色分けされてるだけ。
値が volatile なことと操作が atomic なことは別の話だよ。
自分が書き換えない同じ領域を複数参照するとき、それを他の誰も書き換えないならその参照は一度目の値と同じになる前提で最適化できるけど、他の誰かがいつの間にか書き換えることがあるならそういう最適化はできなくなる。
そういう領域であることを明示するのが volatile。
atomic は同じ領域を誰かが書き換える前提なので基本的にその領域は volatile だけど、それに加えて値を参照して手を加えて書き戻すなどの一連の手続きの途中で他の誰かにいじられないことを保証すること。
それを CPUレベルの命令で行うかソフトウェア的なロックで行うかで色分けされてるだけ。
630デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:28:36.26ID:V2V2cZYad >>627
CPUは何?
CPUは何?
631デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:33:33.27ID:V2V2cZYad メモリアクセスの影響がないなら
iとjのループを入れ換える
ループアンロール
rを偶数奇数で分ける
SIMD
などが有効
iとjのループを入れ換える
ループアンロール
rを偶数奇数で分ける
SIMD
などが有効
632デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:36:26.08ID:V2V2cZYad633デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 14:42:55.39ID:tYvDqilk0634デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:44:16.58ID:V2V2cZYad CPUは何?
635デフォルトの名無しさん (ワッチョイ f97f-9CAQ)
2020/07/23(木) 16:21:21.26ID:WGvvEAFm0636デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 16:39:16.32ID:TTqTgaIL0 >>635
保証ってなんの話?
保証ってなんの話?
637デフォルトの名無しさん (ワッチョイ d901-1JrC)
2020/07/23(木) 20:41:12.28ID:j3eQi4Nn0638デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/24(金) 03:10:38.82ID:6ZonvnML0 volatile ってスレッドに限らず値が知らない内に変化する可能性のある何かの入力でも使うよね。
例えばマイクから拾った音を A/D 変換した値がメモリマップドI/Oで特定のアドレスのメモリ読む方法で読める場合。
CPUが予想不能な形で値がコロコロ変わるので volatile にせざるを得ない。(volatile って揮発性とか不安定って意味だし、言葉の意味そのままだ)。
これは読む側だけど書いて何かを出力する場合も、書いた値を読めないような作りになっている場合もある。
1を書いたのに直後に読むと0だったりなんていう事はあり得る。要するに一々覚えていない。または覚えていても読み出しに対応していない。
そんなハードウェアが接続されていたらそうなる。
例えばマイクから拾った音を A/D 変換した値がメモリマップドI/Oで特定のアドレスのメモリ読む方法で読める場合。
CPUが予想不能な形で値がコロコロ変わるので volatile にせざるを得ない。(volatile って揮発性とか不安定って意味だし、言葉の意味そのままだ)。
これは読む側だけど書いて何かを出力する場合も、書いた値を読めないような作りになっている場合もある。
1を書いたのに直後に読むと0だったりなんていう事はあり得る。要するに一々覚えていない。または覚えていても読み出しに対応していない。
そんなハードウェアが接続されていたらそうなる。
639デフォルトの名無しさん (ワッチョイ 812c-WQpp)
2020/07/24(金) 04:44:18.69ID:So4dssPK0 そりゃ、外部装置と連動しているから、値がいつ変わるか分からない
外部装置が読み書きしたら、合図として、0.1ms 後に、値を反転させたりとか、
色んな事をするから、予測できない
外部装置が読み書きしたら、合図として、0.1ms 後に、値を反転させたりとか、
色んな事をするから、予測できない
640デフォルトの名無しさん (ラクッペペ MMeb-Sn4z)
2020/07/24(金) 09:33:19.23ID:ASBY7bf4M volatileは変数(I/Oアドレス)に対するアクセス行為は保障するけど値そのものに対しては何の意味もない
そもそも外部要因で変化する値に対して干渉するのは不可能
そもそも外部要因で変化する値に対して干渉するのは不可能
641デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/24(金) 10:20:02.92ID:4h264/iA0 どこから干渉するとか出てきたんだ…
知ってる知識を開陳したくてしょうがないんだろうなw
知ってる知識を開陳したくてしょうがないんだろうなw
642デフォルトの名無しさん (ワッチョイ d9da-u8K7)
2020/07/24(金) 15:22:34.69ID:jNVRIcub0 volatileな変数を読むのは怖いよね
ワード単位ならいいけど、構造体読むときはチェックサム欲しくなるよね
ワード単位ならいいけど、構造体読むときはチェックサム欲しくなるよね
643デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/24(金) 18:25:04.01ID:ogZVfXfN0 別に怖くはないだろ。
他所と排他するなりしかるべきタイミングでアクセスすればいいだけなんだから。
排他や同期が必要な領域にそれをせずにアクセスするならただのアホってだけで、volatile がどうとかいう話じゃない。
他所と排他するなりしかるべきタイミングでアクセスすればいいだけなんだから。
排他や同期が必要な領域にそれをせずにアクセスするならただのアホってだけで、volatile がどうとかいう話じゃない。
644デフォルトの名無しさん (ワッチョイ 71b3-Ky2H)
2020/07/24(金) 20:10:16.16ID:Cmq7VG8v0 LL/SC命令が結構使える
645デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/25(土) 04:21:09.10ID:qNFJliza0646デフォルトの名無しさん (ワッチョイ d901-fOmF)
2020/07/26(日) 03:07:46.88ID:4oXiyEBn0 「書きこんだものの読み込んでないからコードから消しちまえ」
「読み込んでるけど、代入以降値がかわる気配がないから、読み込みを止めて固定値にしちまえ」
これを抑制するだけ
書き込や読み込みを記述通り生き残らせる
「読み込んでるけど、代入以降値がかわる気配がないから、読み込みを止めて固定値にしちまえ」
これを抑制するだけ
書き込や読み込みを記述通り生き残らせる
647デフォルトの名無しさん (ワッチョイ 71b3-Ky2H)
2020/07/26(日) 08:34:28.91ID:M65fvK3w0 W=>R : R省略
R1=>R2 : R2省略
W1=>W2 : W1省略
R1=>R2 : R2省略
W1=>W2 : W1省略
648デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/26(日) 10:41:35.23ID:3q3cv3BJ0 volatile覚えて嬉しいのはわかるけど…
649デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/26(日) 11:55:59.05ID:7t5aGHPkd volatileの意味を知らない人 vs volatileを覚えたての人
650デフォルトの名無しさん (ブーイモ MMcb-C2Yk)
2020/07/26(日) 12:24:46.27ID:oYG2ZyVyM vs 30年前の常識で語る人
651デフォルトの名無しさん (ワッチョイ 8146-ZDF1)
2020/07/26(日) 13:35:18.59ID:6eSsd+mZ0 ANSIは邪道。
652デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/26(日) 18:14:24.05ID:hRZi6+cn0 あんししー
653デフォルトの名無しさん (ワッチョイ 41bb-RnSF)
2020/07/26(日) 20:08:24.24ID:VBmKLhih0 アンジー、なんてこと言うの
シー
シー
654デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 02:57:00.46ID:BRKetx390 30年くらい前までドヤる人が好んで口にしてたけどね
そういう人はC89ができたらピタリとやめた
今まだ言ってる珍獣って何なん?
そういう人はC89ができたらピタリとやめた
今まだ言ってる珍獣って何なん?
655はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 08:26:00.92ID:IvOd7acF0 姫宮アンシー
656デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 16:25:16.57ID:BRKetx390 C89以前のK&R Cは個人的には好きなので
gcc -traditional復活して欲しい
gcc -traditional復活して欲しい
657デフォルトの名無しさん (ワッチョイ 0963-RnSF)
2020/07/27(月) 16:41:53.18ID:euzbjA/F0 関数定義で引数が()の外に書かれる記述みると、
今は違和感が湧いてしまう
今は違和感が湧いてしまう
658はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 16:45:47.58ID:IvOd7acF0 書き方が違うだけなら古いスタイルでもいいんだけど、型チェックが緩いんだよな。
659デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 17:14:06.93ID:BRKetx390 アセンブラ屋出身の俺っちにはどうでもいいことだ
660はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 17:35:58.30ID:IvOd7acF0 引数の数を間違えているのに黙って通してしまう例。
https://wandbox.org/permlink/FEu474UVSsilTq0L
最適化オプションを付けたらフロー解析も強まるのか警告してくれたけど。
https://wandbox.org/permlink/FEu474UVSsilTq0L
最適化オプションを付けたらフロー解析も強まるのか警告してくれたけど。
661デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/27(月) 18:50:57.45ID:8GZ2GqSj0662デフォルトの名無しさん (ワッチョイ 3997-nH3A)
2020/07/27(月) 23:59:05.30ID:UIY75t8S0 スタックが壊れないならまあいいんじゃね?
663デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/28(火) 03:43:48.32ID:JnUAmZD/0 あのなあ、おまえら。。。。
K&R Cに対する批判なんて今さらドヤるか?
規格Cを憶えるときにプロトタイプは何のためか
説明受けてないやつがここにいるとでも思うのか?
K&R Cに対する批判なんて今さらドヤるか?
規格Cを憶えるときにプロトタイプは何のためか
説明受けてないやつがここにいるとでも思うのか?
664デフォルトの名無しさん (アウアウウー Sa5d-d0Nl)
2020/07/28(火) 13:28:44.28ID:DVrEteyfa (キリッ
665デフォルトの名無しさん (ワッチョイ 8146-ZDF1)
2020/07/28(火) 19:40:24.44ID:1JEs8/dl0 "#C-PLA" という店名をどう思いますか。
>>663
やっぱり C99 or later を叩くのがかっこいいですよね
やっぱり C99 or later を叩くのがかっこいいですよね
667デフォルトの名無しさん (ワッチョイ 5910-Xo7T)
2020/07/28(火) 20:02:16.84ID:geCJz7H80 >>665
オブジェクトをカプセル化・・・?
オブジェクトをカプセル化・・・?
668デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:10:37.12ID:tqWMyndD0 浮動小数の演算で生じる誤差は常に絶対値が小さくなるように行われる、
という前提は正しい?
という前提は正しい?
669デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:11:14.42ID:tqWMyndD0 C限定の話じゃないからスレ違いか
670デフォルトの名無しさん (ワイーワ2 FF62-lIev)
2020/07/29(水) 17:12:49.06ID:hY/5h1XOF 日本語として可笑しいのでgoto語学板へ
671デフォルトの名無しさん (アウアウウー Sa09-oq/g)
2020/07/29(水) 17:14:56.87ID://053udPa >>668
正しい気がする
正しい気がする
672デフォルトの名無しさん (アウアウウー Sa09-oq/g)
2020/07/29(水) 17:18:22.13ID://053udPa >>668
ごめん嘘ついた。
ごめん嘘ついた。
673デフォルトの名無しさん (ワッチョイ fa0e-xE3T)
2020/07/29(水) 17:21:06.57ID:8sSsdFab0 >>668
ライブラリやFPUの実装の話だね
例えばだけどIEEE754の定義では
仮数部は1.xxxxxxと、整数部が常に1なので
整数部を省き、その分の1bitを小数部に回す「ケチ表現」で
誤差がなるべく小さくなるように工夫している
ライブラリやFPUの実装の話だね
例えばだけどIEEE754の定義では
仮数部は1.xxxxxxと、整数部が常に1なので
整数部を省き、その分の1bitを小数部に回す「ケチ表現」で
誤差がなるべく小さくなるように工夫している
674デフォルトの名無しさん (ワッチョイ da52-kd5w)
2020/07/29(水) 17:25:55.07ID:Bu6uxHFv0675デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:28:44.72ID:tqWMyndD0 doubleを分解(0.1や0.3とかでかけて複数のdouble値にする)して足し合わせて比較、
という処理を無限回繰り返して元の絶対値を超えていたら停止、
みたいなテストコードを書いてみたけど、低確率で元の絶対値を超える。
この誤差が分解と足すときどちらで生じているか分からないが
なんにせよ浮動小数点数演算の誤差で絶対値が増加する場合があるようだ。
という処理を無限回繰り返して元の絶対値を超えていたら停止、
みたいなテストコードを書いてみたけど、低確率で元の絶対値を超える。
この誤差が分解と足すときどちらで生じているか分からないが
なんにせよ浮動小数点数演算の誤差で絶対値が増加する場合があるようだ。
676デフォルトの名無しさん (ワッチョイ fa0e-xE3T)
2020/07/29(水) 17:45:17.74ID:8sSsdFab0 あ、誤差の絶対値ではなく、結果の絶対値ということ?
俺の勘違いだったら悪いんだけど、それじゃ意味なくね?
結果が正数ならともかく負数の場合デメリットだけやん
俺の勘違いだったら悪いんだけど、それじゃ意味なくね?
結果が正数ならともかく負数の場合デメリットだけやん
677デフォルトの名無しさん (スププ Sd9a-xoHN)
2020/07/29(水) 18:11:52.28ID:+Q7sP3F+d 丸めモードによって変わるだろうに
絶対値が小さくなるのはround toward zeroにしたときだな
絶対値が小さくなるのはround toward zeroにしたときだな
678デフォルトの名無しさん (ワッチョイ 79bb-Xvfy)
2020/07/30(木) 05:23:55.72ID:82YOHtIh0 Cのソースコードを解析するツールで有名なものって何かありますでしょうか?
679デフォルトの名無しさん (ワッチョイ ce8c-LW7E)
2020/07/30(木) 06:42:57.43ID:ixil7w/z0 上司がこっそり使っていた cflow
680デフォルトの名無しさん (ワッチョイ d1b3-Fkfq)
2020/07/30(木) 07:04:40.85ID:SsIpxIlu0 >>668
加減乗算のほとんどの実装ではそう
加減乗算のほとんどの実装ではそう
681デフォルトの名無しさん (ワッチョイ 0101-iVY1)
2020/08/10(月) 04:07:37.60ID:SKFyjjt90 デファクトスタンダードなCのコーディング作法を手っ取り早く
身につけるために何をすべきですか?
身につけるために何をすべきですか?
682デフォルトの名無しさん (ワッチョイ 0101-Ea0s)
2020/08/10(月) 04:47:16.15ID:o5h87VM/0 所属がわからないと何とも言えませんね。
社名と部署お願いします。
社名と部署お願いします。
683デフォルトの名無しさん (ワッチョイ d1da-e++8)
2020/08/10(月) 04:53:08.55ID:P+mDn/zj0 車載の組み込み系以外は
それぞれの会社にコーディング規約あるんじゃない?
知らんけど
それぞれの会社にコーディング規約あるんじゃない?
知らんけど
684デフォルトの名無しさん (ワッチョイ 1b8c-oftG)
2020/08/10(月) 06:50:01.64ID:ruBmk/3z0 お手本のプログラムを上司に見せてもらい完コピする。
685デフォルトの名無しさん (ワッチョイ 992c-B5sl)
2020/08/10(月) 06:53:36.45ID:k2ud7k4K0 >>681
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、作った本
未だに、コーディングルールのバイブルだろ
元々は、Andrew Koenig の本
C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、作った本
未だに、コーディングルールのバイブルだろ
元々は、Andrew Koenig の本
C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴
>>685
>数十人のベテ
司法試験板をみると「ベテ」というのは30代以降の複数回受験者のことらしいですよ
文脈によっては veteran は階級を問わず退役軍人を意味することもありますし‥‥「わしが現役の頃には」を壊れたレコード盤のように繰り返すイメージとか
ベテランという言葉に必ずしもプラスイメージが伴っているとは限らないことはしっておいたほうがいいんじゃないですか?
>数十人のベテ
司法試験板をみると「ベテ」というのは30代以降の複数回受験者のことらしいですよ
文脈によっては veteran は階級を問わず退役軍人を意味することもありますし‥‥「わしが現役の頃には」を壊れたレコード盤のように繰り返すイメージとか
ベテランという言葉に必ずしもプラスイメージが伴っているとは限らないことはしっておいたほうがいいんじゃないですか?
687デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 07:23:02.78ID:tfnxCl0S0 能書きはいいから内容を見ろや
あれを見てくだらねえと思うことが何もないやつは
自分がなさすぎだ
あれを見てくだらねえと思うことが何もないやつは
自分がなさすぎだ
688デフォルトの名無しさん (ワッチョイ 0101-iVY1)
2020/08/10(月) 09:47:53.28ID:SKFyjjt90689デフォルトの名無しさん (エムゾネ FF33-SiUo)
2020/08/10(月) 11:57:46.08ID:wInlBSoOF 何も知らないなら手あたり次第写経してみ
それで何でこんな描きかたになってんの?
ってここで質問繰り返せば良い
みんな暇だから答えてくれるはず
それで何でこんな描きかたになってんの?
ってここで質問繰り返せば良い
みんな暇だから答えてくれるはず
690デフォルトの名無しさん (ワッチョイ 895f-Ea0s)
2020/08/10(月) 14:56:52.81ID:xpVmb7Uo0 printfってどれだけメモリ使うんですか?
691デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:00:54.55ID:tfnxCl0S0 実装による
以上
以上
692デフォルトの名無しさん (ワッチョイ 0b7c-BIoY)
2020/08/10(月) 15:02:14.80ID:7NjJFrXk0 printf()の戻り値は本当に捨てて良いんですか?
とか
とか
693デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:36:42.46ID:tfnxCl0S0 返却値の意味くらい知ってる?
694デフォルトの名無しさん (ワッチョイ d1da-FoHg)
2020/08/10(月) 15:44:16.59ID:cUENozhv0 だいたいの戻り値は無視してよいよ
695デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:50:24.83ID:tfnxCl0S0 アホ
696デフォルトの名無しさん (ワッチョイ 3163-IIsV)
2020/08/10(月) 16:38:24.39ID:BXZAjCBt0 >>692
捨てては駄目だな。答えが表示できなくなる。
#include <stdio.h>
int main()
{
printf("%d\n",printf("1+2+3="));
return 0;
}
捨てては駄目だな。答えが表示できなくなる。
#include <stdio.h>
int main()
{
printf("%d\n",printf("1+2+3="));
return 0;
}
697デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 18:19:20.30ID:tfnxCl0S0 返却値を捨てて良いか否かを他人に聞いて
そこに固執する教条主義者か
いかにもMISRA大好きそうだな
そこに固執する教条主義者か
いかにもMISRA大好きそうだな
698デフォルトの名無しさん (ワッチョイ d101-oftG)
2020/08/10(月) 21:28:34.35ID:CQsKBDF30 MISRA〜ヤ MISRA〜
MISRA も、MISRA 対応性的解析ツールを公開してくれていてもよさそうなものですが‥‥ただで
700デフォルトの名無しさん (ワッチョイ 6146-f0BE)
2020/08/10(月) 22:13:11.57ID:DZgybkpe0 性的解析...
701はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d13e-FoHg)
2020/08/11(火) 01:09:34.46ID:EJAYjJkN0 MISRA だって MISRA を採用する場合に何がなんでも全ての項目に準拠しなければならないというわけではない。
(逸脱する場合には文書化しておくことを推奨してはいるが。)
ただ、気を付けなければならない箇所がまとめられているというのも間違いないので、
目を通すくらいのことはしたらいいんじゃないの。
俺は読んだことないけど。
(逸脱する場合には文書化しておくことを推奨してはいるが。)
ただ、気を付けなければならない箇所がまとめられているというのも間違いないので、
目を通すくらいのことはしたらいいんじゃないの。
俺は読んだことないけど。
702デフォルトの名無しさん (ワッチョイ ebd2-e++8)
2020/08/11(火) 07:47:01.13ID:SWJYIPbx0 規格、仕様の奴隷
703デフォルトの名無しさん (ワッチョイ 59bb-IIsV)
2020/08/11(火) 07:50:09.41ID:RSsrE9PW0 俺は規格や仕様に縛られないで自由にプログラミングするのさ
翼が生えた蛙みたいにケロケロいいながら大空を羽ばたくのさ
翼が生えた蛙みたいにケロケロいいながら大空を羽ばたくのさ
704デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/11(火) 08:12:17.68ID:cZN35xi70 いや規格は守らなきゃ
工業人の法律みたいなもんだから
MISRAの話がどう化けると仕様になるのかは意味不明
工業人の法律みたいなもんだから
MISRAの話がどう化けると仕様になるのかは意味不明
705デフォルトの名無しさん (ワッチョイ 5905-e++8)
2020/08/11(火) 09:12:05.23ID:02tHA6AW0 >>704
規格が法律に例えられるように、MISRAは憲法になぞらえることができる
規格が法律に例えられるように、MISRAは憲法になぞらえることができる
706デフォルトの名無しさん (ワッチョイ d352-IP9Q)
2020/08/11(火) 09:29:25.90ID:nKBbqh2w0707デフォルトの名無しさん (ワッチョイ 13a5-w77N)
2020/08/11(火) 11:41:57.49ID:l01whKN50 でもやっぱりどれくらいMISRAに準拠してるかチェックするツールが全く出てないのは不自然
もしかしてMISRAって目視チェックを前提にした規格なのか?
それとも企業で門外不出のツールになってんのか?
もしかしてMISRAって目視チェックを前提にした規格なのか?
それとも企業で門外不出のツールになってんのか?
708デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/11(火) 11:44:29.40ID:cZN35xi70 【手を挙げて】横断歩道を渡りましょう
↑
この程度だよ
憲法だの条例だのと違い司法機関は相手にしない
↑
この程度だよ
憲法だの条例だのと違い司法機関は相手にしない
709デフォルトの名無しさん (ドコグロ MMfd-LWG7)
2020/08/11(火) 11:46:02.07ID:XFONBlSQM 小池百合子が掲げるフリップみたいなもんだろ
今年の夏は特別な夏です、破廉恥なコードは自粛しましょう
今年の夏は特別な夏です、破廉恥なコードは自粛しましょう
710デフォルトの名無しさん (ワッチョイ 3163-IIsV)
2020/08/11(火) 12:17:39.96ID:gJF+/AhQ0 「警報!侵蝕されてます!パターン青です!コードを切り離せません!」
夏はこれ
夏はこれ
711デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 12:28:40.57ID:RcrtMjNU0 >>707
全くて、市販の静的解析ツールならいくつかあるじゃん。
全くて、市販の静的解析ツールならいくつかあるじゃん。
712デフォルトの名無しさん (ワッチョイ 5110-FyBY)
2020/08/11(火) 13:59:44.70ID:QMJ1Ew+q0 おまえらミスラの話と見せかけて髻(みずら)の話につなげようとしてんだろ
どうせここで髪の話して俺の悪口言う魂胆なんだろ
おまえら最悪だな
どうせここで髪の話して俺の悪口言う魂胆なんだろ
おまえら最悪だな
713デフォルトの名無しさん (ワッチョイ d352-IP9Q)
2020/08/11(火) 14:47:19.21ID:nKBbqh2w0 >>712
髻なんて糞、そんな下らないものを気にする奴は馬鹿、という流れでお前さんへのエールのはずだったんだ
髻なんて糞、そんな下らないものを気にする奴は馬鹿、という流れでお前さんへのエールのはずだったんだ
714デフォルトの名無しさん (アウアウウー Sa55-1t4k)
2020/08/11(火) 18:54:59.41ID:j5xuOst8a きみはこう言いたいのでしょう
ヅラはどこだ!
ヅラはどこだ!
>>711
MISRA の対応するコメントを付けてくれる性的解析ツールは、無料で提供されるべきでしょう、業界標準を目指すのなら
MISRA の対応するコメントを付けてくれる性的解析ツールは、無料で提供されるべきでしょう、業界標準を目指すのなら
716デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 20:25:37.46ID:RcrtMjNU0 >>716
でも MISRA の対象者レベル設定ってアマチュアレベルでしょう?
でも MISRA の対象者レベル設定ってアマチュアレベルでしょう?
718デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 21:02:15.95ID:RcrtMjNU0 金取るかどうかの話をしているのにレベルの話を持ち出したのは意図的に話をそらしたわけ?
それとも日本語をちゃんと理解できない?
それとも日本語をちゃんと理解できない?
>>718
無論、前者ですね、というかモノの値段はその価値と深い相関があるのが普通でありマトモだとも思いますから、
支払う価値の話に対して対象レベルの話を持ち出すことは、あながち間違っているとはいえないでしょう?
無論、前者ですね、というかモノの値段はその価値と深い相関があるのが普通でありマトモだとも思いますから、
支払う価値の話に対して対象レベルの話を持ち出すことは、あながち間違っているとはいえないでしょう?
720デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 21:46:45.35ID:RcrtMjNU0 言ってることがむちゃくちゃすぎw
やっぱり日本語もダメだろ
やっぱり日本語もダメだろ
721デフォルトの名無しさん (ワッチョイ 992c-W4sk)
2020/08/11(火) 23:30:38.44ID:X5c8vKvD0 VSCode の拡張機能で、misra で検索すると、これが見つかる
Parasoft C/C++test Standard
https://marketplace.visualstudio.com/items?itemName=parasoft.vscode-cpptest
https://docs.parasoft.com/display/CPPTEST20201
C/C++ Static Analysis, Safety and Security Coding Standards,
MISRA C 2012, AUTOSAR C++ 14, CERT C/C++, and others.
Parasoft C/C++test Standard
https://marketplace.visualstudio.com/items?itemName=parasoft.vscode-cpptest
https://docs.parasoft.com/display/CPPTEST20201
C/C++ Static Analysis, Safety and Security Coding Standards,
MISRA C 2012, AUTOSAR C++ 14, CERT C/C++, and others.
722デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/12(水) 05:43:26.21ID:/aSZJl0C0 >>717
アマチュアとアマチュア以外の定義を述べよ。
アマチュアとアマチュア以外の定義を述べよ。
723デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/12(水) 08:33:57.98ID:YginzyYa0 プロってどの位のレベルなのかに興味津々なんだろうな
サンプルがなくてw
サンプルがなくてw
724デフォルトの名無しさん (ワッチョイ 027c-p5K4)
2020/08/12(水) 09:52:08.77ID:3JHviGe70 複雑になっても自分で何を作っているのか理解しているかしていないかぐらいの差じゃないの?
726デフォルトの名無しさん (ワッチョイ e501-/T98)
2020/08/12(水) 13:35:54.95ID:+rovT3b20 ステップ数なんて飾りだよ
727デフォルトの名無しさん (ラクッペペ MM26-snu4)
2020/08/12(水) 14:22:01.62ID:XADAagqaM 業として行っている個人やそのような組織に属しているのがプロ
728デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/12(水) 15:57:15.32ID:yGflmyFx0 捕まる泥棒はアマ、捕まらないのはプロ。
729デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/12(水) 16:07:40.09ID:YginzyYa0 ステップ数って・・・まさかマジで言ってるのか?
730デフォルトの名無しさん (ワッチョイ 81ca-YRtD)
2020/08/12(水) 16:15:20.08ID:aKiWlwPm0 それを生業にしてるならヘボかろうがプロではあるな。
んで世の中ヘボが相当数いる。
百人単位のプロジェクトになると7割はヘボ。
入社したてのほとんど何もできない新人君とかも混ぜ混んでくるし、本当にひどい。
でもみんなプロ。
んで世の中ヘボが相当数いる。
百人単位のプロジェクトになると7割はヘボ。
入社したてのほとんど何もできない新人君とかも混ぜ混んでくるし、本当にひどい。
でもみんなプロ。
731デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/12(水) 16:20:10.06ID:mptqcK2nF 人件費稼ぐために頭数合わせてるだけ
732デフォルトの名無しさん (ワッチョイ c219-k0xq)
2020/08/12(水) 17:46:51.14ID:wD9I21LT0 プロアマの基準にステップ数なんざ関係ないが1万程度1人で組める規模じゃん
成果物で金稼いでりゃプロで良いと思うし、プロでもひどいの居ればアマでもすごいのは居る
成果物で金稼いでりゃプロで良いと思うし、プロでもひどいの居ればアマでもすごいのは居る
734はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-++7W)
2020/08/12(水) 18:20:24.44ID:WoaeeAs50 長時間労働に耐えられる体力があるのかもしれんし、
有力者に取り入る能力が高いのかもしれんし、
幸運値が高くてなんとなくやっていけてるのかもしれん。
それも成果。
有力者に取り入る能力が高いのかもしれんし、
幸運値が高くてなんとなくやっていけてるのかもしれん。
それも成果。
735デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/12(水) 23:23:26.75ID:/aSZJl0C0 ユーザーからしたら、どんなクソコードが走ってようがテストされ尽くして品質保証がされていてちゃんと動いてるならどうでもいいよ。
開発者からしたら、クソコードは工数が膨れ上がる原因になるからやめて欲しいけど。
そして品質保証プロセスがあると面倒臭いルールだらけで足止めを食らうからそういう世界では開発したくない。
でも、MISRAとかはそういう面倒臭いルールで品質を保証するためのもので、辛い開発プロセスを我慢して製品を作り上げられるのはプロの開発者だと思うよ。
それなりに優秀な人、ぐらいだとアーキテクチャを知り尽くしているところまでは行ってないと思うし、
思わぬところで不具合を発生させてしまうものだから。
エレガントなコードかつ、品質の保証範囲も広いコードを書ける開発者なんか極少数なんだからミッションクリティカルなところでは規約で縛ってくしかないと思うよ。
開発者からしたら、クソコードは工数が膨れ上がる原因になるからやめて欲しいけど。
そして品質保証プロセスがあると面倒臭いルールだらけで足止めを食らうからそういう世界では開発したくない。
でも、MISRAとかはそういう面倒臭いルールで品質を保証するためのもので、辛い開発プロセスを我慢して製品を作り上げられるのはプロの開発者だと思うよ。
それなりに優秀な人、ぐらいだとアーキテクチャを知り尽くしているところまでは行ってないと思うし、
思わぬところで不具合を発生させてしまうものだから。
エレガントなコードかつ、品質の保証範囲も広いコードを書ける開発者なんか極少数なんだからミッションクリティカルなところでは規約で縛ってくしかないと思うよ。
736デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 06:04:03.36ID:UjRsJ9BY0 本書いてるやつらの個人的な好みだの
大事にしたところで結局使えねえバカに合わせろだのと
くだらねえことばかり分厚い本1冊渡してすべて読んで従えなんてやると
やる気なくさせるだけだ
大事にしたところで結局使えねえバカに合わせろだのと
くだらねえことばかり分厚い本1冊渡してすべて読んで従えなんてやると
やる気なくさせるだけだ
737デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/13(木) 10:30:22.58ID:m1xh97jBF 他人を騙すのが上手いのがプロっていうイメージ
738685 (ワッチョイ e52c-178q)
2020/08/13(木) 10:37:21.72ID:b3k2BUbg0 著者の好みとか、そういう次元ではない
日本の大企業のトップ、50人が集まっても、誰も規格を知らない。
規格の研究は、それだけで何十年も掛かるから、開発者ができない
基本、企業には、そういう開発しない人は、いらない
だから日本には、規格に精通した研究者がいなくなった。
江添亮ぐらい
だから、欧州のMisra-C に聞きながら、作った。
でも、欧州側にも詳しい香具師がいないのは、同じ。
日本側が、欧州側の間違いを訂正したりもしてる
企業としては、規格だけを何十年も研究しているような香具師を雇わないのだろう。
だから、まぎれなく書かないと、誰も規格を調べられないから、困る
日本の大企業のトップ、50人が集まっても、誰も規格を知らない。
規格の研究は、それだけで何十年も掛かるから、開発者ができない
基本、企業には、そういう開発しない人は、いらない
だから日本には、規格に精通した研究者がいなくなった。
江添亮ぐらい
だから、欧州のMisra-C に聞きながら、作った。
でも、欧州側にも詳しい香具師がいないのは、同じ。
日本側が、欧州側の間違いを訂正したりもしてる
企業としては、規格だけを何十年も研究しているような香具師を雇わないのだろう。
だから、まぎれなく書かないと、誰も規格を調べられないから、困る
739デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 11:16:30.65ID:UjRsJ9BY0 馬鹿か
家電量販店くらい覗いてみろ
新規格が発表されるたびにメーカー各社いち早く対応製品出してるだろ
家電量販店くらい覗いてみろ
新規格が発表されるたびにメーカー各社いち早く対応製品出してるだろ
740デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/13(木) 11:32:05.85ID:VDPM7Buu0 成果物という言い方に違和感。
普通に製品で良いのでは?
普通に製品で良いのでは?
741デフォルトの名無しさん (ワッチョイ 81da-++7W)
2020/08/13(木) 11:37:09.38ID:YgH3wASL0 >>740
製品作ってるわけじゃないからな
製品作ってるわけじゃないからな
742デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/13(木) 11:37:44.29ID:nPN4GQVV0 コンパイラの新しい規格が決まりました
対応する新製品、本日発売です
対応する新製品、本日発売です
743デフォルトの名無しさん (ワッチョイ 2252-MHHw)
2020/08/13(木) 12:02:05.37ID:oBQ5L51M0 >>738
前々から馬鹿だとは思ってたが、ここまで馬鹿だとは
前々から馬鹿だとは思ってたが、ここまで馬鹿だとは
744デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 12:25:23.76ID:UjRsJ9BY0 >>742
まさかとは思うがイヤミのつもりか?
まさかとは思うがイヤミのつもりか?
745デフォルトの名無しさん (ワッチョイ c219-k0xq)
2020/08/13(木) 12:35:10.28ID:l61yvHm+0 社内で使うツールなんかも製品なんていうのか?
むしろ成果物のほうが一般的に使う用語だと思うぞ
もしかしたら業界によって違うかもしれんが
大体の業界でプログラムだけで製品にならんからな
むしろ成果物のほうが一般的に使う用語だと思うぞ
もしかしたら業界によって違うかもしれんが
大体の業界でプログラムだけで製品にならんからな
746デフォルトの名無しさん (ドコグロ MM61-eTOa)
2020/08/13(木) 12:37:35.56ID:jTOLwBsaM747デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/13(木) 13:13:16.97ID:CM5c4LB70 つまり間接成果物か。
作る意味あんのそれ
一銭たりとも稼いでないじゃん
それとも中間体なの
作る意味あんのそれ
一銭たりとも稼いでないじゃん
それとも中間体なの
748デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/13(木) 13:20:07.07ID:KaPqduB6F 言葉遊びだしどうでも良いけど
副産物って言うかな
副産物って言うかな
749デフォルトの名無しさん (スップ Sdc2-k0xq)
2020/08/13(木) 13:21:11.74ID:sAiv34b1d 稼いでるでしょw
そういうのでお金もらったこと無いの?
お仕事知らなすぎでしょ
そういうのでお金もらったこと無いの?
お仕事知らなすぎでしょ
750デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/13(木) 13:41:31.84ID:CM5c4LB70 やっぱり視点がここまで違うんだな
お前にやるカネなんてどうでもいいよ
製品が稼いでくるカネに興味あるんだよ
だから間接成果物だろ
経理の奴らにだって給料渡してんのは誰でも知ってるよ
お前にやるカネなんてどうでもいいよ
製品が稼いでくるカネに興味あるんだよ
だから間接成果物だろ
経理の奴らにだって給料渡してんのは誰でも知ってるよ
751デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/13(木) 13:52:23.74ID:3qG7aIhA0 青果物だろ。八百屋の自覚があるのかねキミたちは。
752デフォルトの名無しさん (ワッチョイ 49b0-p5K4)
2020/08/13(木) 14:04:17.63ID:TgMttUh/0 テストもされていない作りっぱなしの製品にお金払ってくれる顧客ばかりじゃないしなぁ
753デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/13(木) 14:08:20.70ID:RDWqdqfD0754デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/13(木) 14:12:24.56ID:RDWqdqfD0755デフォルトの名無しさん (ワッチョイ d166-k0xq)
2020/08/13(木) 14:23:51.21ID:BqAuLMN60 会社から外に出るあらゆるものがすべて製品である、ってのなら言いたいことはわかるよ
でも個人的な感覚ではすべてを製品というのは言葉のとる範囲が広すぎる
設計書やテスト関連のドキュメントなんかを製品とは言いづらい
そういうふわっとしたもの含めてプログラマのアウトプットを一言で表すものとして成果物って単語を使ったにすぎない
でも個人的な感覚ではすべてを製品というのは言葉のとる範囲が広すぎる
設計書やテスト関連のドキュメントなんかを製品とは言いづらい
そういうふわっとしたもの含めてプログラマのアウトプットを一言で表すものとして成果物って単語を使ったにすぎない
756デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 15:20:08.51ID:UjRsJ9BY0 >>747
おまえPGとかいう以前に工業人でさえなさそうに見えるぞ
おまえPGとかいう以前に工業人でさえなさそうに見えるぞ
757デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/13(木) 16:24:26.08ID:GUNSShX60 データベースかプロジェクトデータで話が通るように初めからやっとけ。
後でこれがないあれがないあるのが常識やろは馬鹿な日の丸会社に多い。
後でこれがないあれがないあるのが常識やろは馬鹿な日の丸会社に多い。
758デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 16:34:29.68ID:UjRsJ9BY0 PGは納品用のコードだけ書いてるわけじゃない
納品に至るまでの内輪で必要になるコードが色々あるかんな
PG経験ないやつに舞台裏の事情がわからんのは当たり前
納品に至るまでの内輪で必要になるコードが色々あるかんな
PG経験ないやつに舞台裏の事情がわからんのは当たり前
759デフォルトの名無しさん (ワッチョイ e9e6-wj9T)
2020/08/13(木) 20:33:00.03ID:5JTzAfSL0 間接成果物www
760デフォルトの名無しさん (ワッチョイ e501-/T98)
2020/08/13(木) 22:12:33.85ID:uUPpxsEe0 言葉があやふやな人って本当に仕事してんのか不安になるね
761デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 05:26:27.88ID:a6sLiNyt0 でもProductを成果物と訳してるじゃないですか。
これ、オープンソースは無料なので、製品と訳せなかったんですよね?
無料でも製品で良いのでは?
これ、オープンソースは無料なので、製品と訳せなかったんですよね?
無料でも製品で良いのでは?
762デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 06:17:07.84ID:a6sLiNyt0 念のため記しておきますが、成果物という言い回しは昔からよく使われていたものではなく、JFから始まったスタイルです。
つまり翻訳に起源があります。
つまり翻訳に起源があります。
763デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 06:26:00.09ID:rGV5Pz8z0 開発費だけの受け取りは不正の温床となるので必ず物の納品を義務化しています。
764デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 06:39:27.33ID:a6sLiNyt0 そういう場合は、JIS用語である中間製品、半製品と言ってるじゃないですか。
オープンソースのときだけ成果物というのは違和感がある。
オープンソースのときだけ成果物というのは違和感がある。
765デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/14(金) 06:50:36.22ID:dINeHZlk0 >>762
我が社では、成果物という言い回しはJF以前からよく使われていたなあ。
我が社では、成果物という言い回しはJF以前からよく使われていたなあ。
766デフォルトの名無しさん (ワッチョイ d17f-xn0R)
2020/08/14(金) 09:55:53.25ID:JGhukcXO0 大企業間の契約書でも実担当者間の会話でも普通に使われる言葉だし、違和感があるのは単に自分の周りで使われてなかっただけでないかと。
767デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/14(金) 10:01:34.96ID:SEg+bPfj0 >>754
本当に話が分らんヤツだな
先方に納めたテストは、先方で『稼働』して直接はカネ稼いでないだろ
お前がいくら貰ってようとそんなの関係ない
作ったモン書いたモンが納入先で金稼ぎのツールとして動いてるかどうか、だ
ツール使ってる側から見て、それが直接稼いでるから直接成果物だ
書いてる側の視点なんてのは本当にどうでもいい
お前がどんだけ苦労して作ったとか、作るためにカネ貰ったとか、全くそういうのは関係ないし、不要で、いらないんだ
主観まみれの感情論や精神論は気持ち悪すぎていらないんだよ
で、顧客は、エンジニアが作った器械装置やプログラムを使って稼ぎ出すカネの方に興味がある
本当に話が分らんヤツだな
先方に納めたテストは、先方で『稼働』して直接はカネ稼いでないだろ
お前がいくら貰ってようとそんなの関係ない
作ったモン書いたモンが納入先で金稼ぎのツールとして動いてるかどうか、だ
ツール使ってる側から見て、それが直接稼いでるから直接成果物だ
書いてる側の視点なんてのは本当にどうでもいい
お前がどんだけ苦労して作ったとか、作るためにカネ貰ったとか、全くそういうのは関係ないし、不要で、いらないんだ
主観まみれの感情論や精神論は気持ち悪すぎていらないんだよ
で、顧客は、エンジニアが作った器械装置やプログラムを使って稼ぎ出すカネの方に興味がある
768デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 10:26:56.96ID:Us3wnTKB0 マ板に移動しろ、クソども
769デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/14(金) 10:35:04.04ID:sRXPDhxm0770デフォルトの名無しさん (ラクッペペ MM26-snu4)
2020/08/14(金) 10:55:52.26ID:P4eFhUvDM771デフォルトの名無しさん (ワッチョイ 8101-1RiF)
2020/08/14(金) 14:35:53.28ID:5R1OsKN50 アマチュアのプロジェクトにへっぽこプログラマは参加できないが
プロのプロジェクトはへっぽこプログラマの方が多い
プロのプロジェクトはへっぽこプログラマの方が多い
772デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 14:41:42.13ID:2wR+X/g+0 確かにハッカー集団にボーガスは入れてもらえないね
773デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 15:33:21.13ID:Z47jWul30774デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/14(金) 15:41:56.15ID:Z2/UjnqU0 間接成果物を作るのは無駄、というのは、
顧客が絶対チェックしないんだけどなぜか成果物として要求される、
中間工程を納品用にドキュメント化したもの、を作るのが無駄と言ってるのかな
まあ、わからんでもないけどそれがあれば顧客に引き継げる場合もあるし、ケースバイケースのような。
顧客が絶対チェックしないんだけどなぜか成果物として要求される、
中間工程を納品用にドキュメント化したもの、を作るのが無駄と言ってるのかな
まあ、わからんでもないけどそれがあれば顧客に引き継げる場合もあるし、ケースバイケースのような。
775デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 16:23:44.04ID:2wR+X/g+0778デフォルトの名無しさん (ワッチョイ 4914-056u)
2020/08/14(金) 18:05:29.78ID:8V/zklnR0779デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:05:35.24ID:2wR+X/g+0 >>777
手合いかと聞いているのを知らないからと思ってしまう
おまえさんの脳味噌こそ深刻なバグ抱えてるぜ
PGの世界でどうだか知らねえのか
マジでトーシロだな
この板では家畜以下の身分てことを自覚しろな
手合いかと聞いているのを知らないからと思ってしまう
おまえさんの脳味噌こそ深刻なバグ抱えてるぜ
PGの世界でどうだか知らねえのか
マジでトーシロだな
この板では家畜以下の身分てことを自覚しろな
780デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/14(金) 18:16:58.51ID:zY2s9ydfF 投機的な不動産投資は儲からんかも知れんが
マンションとか土地持ってて他人に貸すのは儲かるで
マンションとか土地持ってて他人に貸すのは儲かるで
>>778-779
世間一般ではハッカーとクラッカーとは区別しません、両者ともハッカーといいますね
狭い業界ではハッカーとクラッカーを区別して、いいニュアンスを持つものだけをハッカーとしたいようですが、世間はそうは見ておらずハッカーもクラッカーもどちらも危ないものという認識だから両者を区別していないのです
狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しないという、いい例でしょう、ことわざにもありますよね「井の中の蛙大海を知らず」もっとも海水に耐える蛙は私もしりませんが
そうそう、どうしてもハッカーとクラッカーを区別したいんだったら「ホワイトハッカー」という言葉はある程度認知されているようですから、それを使いなさい
早く馬鹿が治るといいですね
世間一般ではハッカーとクラッカーとは区別しません、両者ともハッカーといいますね
狭い業界ではハッカーとクラッカーを区別して、いいニュアンスを持つものだけをハッカーとしたいようですが、世間はそうは見ておらずハッカーもクラッカーもどちらも危ないものという認識だから両者を区別していないのです
狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しないという、いい例でしょう、ことわざにもありますよね「井の中の蛙大海を知らず」もっとも海水に耐える蛙は私もしりませんが
そうそう、どうしてもハッカーとクラッカーを区別したいんだったら「ホワイトハッカー」という言葉はある程度認知されているようですから、それを使いなさい
早く馬鹿が治るといいですね
782デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:33:09.65ID:2wR+X/g+0783デフォルトの名無しさん (ワッチョイ 6277-p5K4)
2020/08/14(金) 18:47:19.76ID:cDg5L/fg0 防衛と侵略が区別できない政治家がいる国だもの。
>>782
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
786デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 19:11:49.78ID:2wR+X/g+0787デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 19:28:49.23ID:Us3wnTKB0 ここはどこの板で、
なんのスレだかも
見ようともしないのか
なんのスレだかも
見ようともしないのか
788デフォルトの名無しさん (ワッチョイ d17f-xn0R)
2020/08/14(金) 21:45:06.99ID:JGhukcXO0 古語で言うところの、夏厨ってやつだね
789デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 22:07:33.94ID:Us3wnTKB0 次スレから、IP強制表示にした方がいい?
790デフォルトの名無しさん (ワッチョイ 4290-o4rh)
2020/08/14(金) 22:13:46.18ID:yLQKJUZJ0 その方がいいと思う
いささか荒れすぎ感
いささか荒れすぎ感
791デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/14(金) 22:39:41.29ID:AXcHM7Xg0792デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 22:41:53.95ID:h2QIVB9f0793デフォルトの名無しさん (ワッチョイ 81da-++7W)
2020/08/15(土) 00:46:37.07ID:xVZ93qLw0 >>792
本人のふりをして荒らさせようとするのはやめろ
本人のふりをして荒らさせようとするのはやめろ
794デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 12:58:19.65ID:Y9oiVJFr0 2次元配列への走査方向を行と列で入れ替えた際のパフォーマンスの違いは
何に起因するのでしょうか?
いずれにしてもソース上はランダムアクセスに違いないと思うのですが.
https://ideone.com/VjhO3l
何に起因するのでしょうか?
いずれにしてもソース上はランダムアクセスに違いないと思うのですが.
https://ideone.com/VjhO3l
795デフォルトの名無しさん (スッップ Sd62-NiDN)
2020/08/15(土) 13:28:06.72ID:Ol0PEc3Yd キャッシュ
796デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:36:54.66ID:cGC1PAzNF >>784
ウィルス持ちの観光客が最強と判明しました
ウィルス持ちの観光客が最強と判明しました
797デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:38:45.66ID:cGC1PAzNF >>794
メモリの連続性じゃないの?
メモリの連続性じゃないの?
798デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/15(土) 13:43:34.64ID:0tc6f7mC0 今のPCってメモリーいっぱい積んでいるから、
よっぽど大きな配列出ないと差が出ないかも知れない
よっぽど大きな配列出ないと差が出ないかも知れない
799デフォルトの名無しさん (ワッチョイ 4961-IBtm)
2020/08/15(土) 13:57:10.40ID:qjcQBNN70 メモリが連続してる方向に走査すればCPUキャッシュが効きやすい
800デフォルトの名無しさん (ワッチョイ 422f-WAQY)
2020/08/15(土) 14:00:10.52ID:fqWla8CQ0 プロセッサのキャッシュにはキャッシュラインと言ってフェッチする単位があるんだよ。
あるアドレスをアクセスしたときラインサイズでフェッチしてあるからその後にそのライン内のアドレスならば速くアクセスできる。
要するに先読みしておいてくれるわけ。
あるアドレスをアクセスしたときラインサイズでフェッチしてあるからその後にそのライン内のアドレスならば速くアクセスできる。
要するに先読みしておいてくれるわけ。
801デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 14:31:56.10ID:Y9oiVJFr0 なるほどarr[i][j]へのアクセスでarr[i]の周辺もキャッシュに乗ることになって、
その近くなら早くアクセスできるんですね。
ありがとうございます。
その近くなら早くアクセスできるんですね。
ありがとうございます。
802デフォルトの名無しさん (ワッチョイ 9f10-fAYc)
2020/08/19(水) 09:31:04.59ID:9mqf8z+n0803デフォルトの名無しさん (スププ Sd9f-wndR)
2020/08/19(水) 12:30:49.32ID:ToVJAng8d まるでSuperfetchみたいな本末転倒だな
804デフォルトの名無しさん (ワッチョイ 1f05-YpYZ)
2020/08/19(水) 13:40:38.15ID:vFpWtsM/0 >>802
無意味なコピーだとコンパイラに見抜かれたら意味ないよね
無意味なコピーだとコンパイラに見抜かれたら意味ないよね
805デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:00:17.69ID:/fw6ffjlM キャッシュに乗せるかどうかってコンパイラの仕事なの?
806デフォルトの名無しさん (ワッチョイ 9fca-8gnn)
2020/08/19(水) 20:01:21.69ID:iriw96df0 メモリアクセスしないといけないのに最適化でそのアクセスが省略されちゃうってこと
807デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:02:45.07ID:/fw6ffjlM ああそっちか
808デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 20:19:01.78ID:wUlRTy820 -O3でコードが省略されるんですが計測したいのに省略されちゃうと計測できないんですが
-O3は計測するなってことですか?
-O3は計測するなってことですか?
809デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 20:28:37.21ID:hsLGYVPM0 何らかの方法で「使ってますよ」って教えればいい
810デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:37:28.51ID:wUlRTy820 >>809
この前関数の呼び出しコストを計測しようとしたんですよ
void f() { }
みたいな関数なんですけど
でも-O3にすると関数呼び出しが省略されるんですね
このケースってなにかうまい方法ありますか?
この前関数の呼び出しコストを計測しようとしたんですよ
void f() { }
みたいな関数なんですけど
でも-O3にすると関数呼び出しが省略されるんですね
このケースってなにかうまい方法ありますか?
811デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:40:25.73ID:wUlRTy820 後出しみたいになってすみませんm(_ _)m
812蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-iJX3)
2020/08/19(水) 21:41:01.00ID:FObCC8uFd マイナスオーゼロにすればぁ?
813デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:41:20.02ID:4erVQTjid 処理0個
処理1個
処理2個
の関数作って時間はかって処理1個にかかる時間を引き算
処理1個
処理2個
の関数作って時間はかって処理1個にかかる時間を引き算
814デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:42:15.13ID:4erVQTjid 最適化で展開とかされたらあかんけどね
815デフォルトの名無しさん (ブーイモ MM0f-PYI5)
2020/08/19(水) 21:44:41.25ID:afdzM61xM 最近のコンパイラさんは賢いで〜
816デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:45:36.69ID:4erVQTjid 最悪アセンブラ見てステップ数数える
関数呼び出しだけならそんな無いでしょ
関数呼び出しだけならそんな無いでしょ
817デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 22:16:05.51ID:hsLGYVPM0 中でグローバル変数に代入してみたら?
コンパイラから見て、どこで使うかは分からないと思うよ
コンパイラから見て、どこで使うかは分からないと思うよ
818デフォルトの名無しさん (ワッチョイ 9fda-Dag0)
2020/08/19(水) 23:09:46.74ID:BCDBcsjw0 動的リンクされるようライブラリにすればいいんじゃね?
819デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 23:19:26.76ID:wUlRTy820 なるほど
参考にします
参考にします
820デフォルトの名無しさん (ワッチョイ 9f01-G9q0)
2020/08/19(水) 23:24:44.35ID:1TMyVKY80821デフォルトの名無しさん (ワッチョイ 7ff9-Dag0)
2020/08/20(木) 00:41:38.77ID:di44bxHe0 -O3でコンパイルした時のものを計測したいんだから
なくなる=時間0が正しいんじゃないの?
なくなる=時間0が正しいんじゃないの?
822デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 11:46:13.26ID:vxwYzwgQ0 前処理マクロの質問です。
ファイルの名前と関数名がコロンで繋がれた文字列を出力するマクロを作りたいです。
具体的には
somefile.cというファイルの中で
int somefnc(void) {
puts(FILE_FUNC);
return 0;
}
みたいなコードが,前処理を経て
int somefnc(void) {
puts("somefile:somefnc");
return 0;
}
というコードに変換されるようなマクロが書きたいです。
どうかよろしくおねがいします。
ファイルの名前と関数名がコロンで繋がれた文字列を出力するマクロを作りたいです。
具体的には
somefile.cというファイルの中で
int somefnc(void) {
puts(FILE_FUNC);
return 0;
}
みたいなコードが,前処理を経て
int somefnc(void) {
puts("somefile:somefnc");
return 0;
}
というコードに変換されるようなマクロが書きたいです。
どうかよろしくおねがいします。
823デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 13:06:29.61ID:OKbq69D/d824デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 15:49:31.41ID:vxwYzwgQ0 >>823
ありがとうございます。
__FILE__や__func__でファイル名・関数名が取得できることは
知っているのですが,その二つをコロンで繋いで文字列にする方法が
分からないんです。
言葉が足りなくてすいません。
例えば
#define FILE_FUNC __FILE__ ":" __func__
というような定義では,当然ではありますが,
うまくいきません。
__FILE__と__func__を展開しつつ,
間にコロンを入れて,外側を引用符で囲む,
という操作を実現できればいいのですが……。
ありがとうございます。
__FILE__や__func__でファイル名・関数名が取得できることは
知っているのですが,その二つをコロンで繋いで文字列にする方法が
分からないんです。
言葉が足りなくてすいません。
例えば
#define FILE_FUNC __FILE__ ":" __func__
というような定義では,当然ではありますが,
うまくいきません。
__FILE__と__func__を展開しつつ,
間にコロンを入れて,外側を引用符で囲む,
という操作を実現できればいいのですが……。
825デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 16:13:14.33ID:OKbq69D/d826デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 16:44:22.67ID:RX/3qqm6F char s[4] = "ABC";
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?
827デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:36:07.94ID:h4eQG1wdM >>824
fprintf(stderr, "%s:%s", _FILE_, _func_)
fprintf(stderr, "%s:%s", _FILE_, _func_)
828デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:44:00.86ID:h4eQG1wdM >>826
仕様書6.7.9に余裕があったらnull文字も書き込むよって書いてあるので、余裕がないからnullは書き込まれてないんじゃないかな。
仕様書6.7.9に余裕があったらnull文字も書き込むよって書いてあるので、余裕がないからnullは書き込まれてないんじゃないかな。
829デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 17:52:19.01ID:RX/3qqm6F >>828
ありがとうございます
別の質問なのですが
char s[4] = "ABC";
のとき
printf("%2s\n", s);
で
ABC
まで表示されてしまいます
これを2文字で切るのは
%2s
じゃ駄目なんでしょうか?
ありがとうございます
別の質問なのですが
char s[4] = "ABC";
のとき
printf("%2s\n", s);
で
ABC
まで表示されてしまいます
これを2文字で切るのは
%2s
じゃ駄目なんでしょうか?
830デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 18:19:55.36ID:ajS/uCbw0 %.2s
831デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 18:47:15.31ID:RX/3qqm6F 出来たかも知れないありがとう
ちなみに
char s[4] = "A";
printf("|%.2s|\n", s); // |A| 右詰めにならない(左に空白一文字分が出来ない)
printf("|%.-2s|\n", s); // |%.0-2s| って表示される
printf("|%-.2s|\n", s); // |A| 左詰めにならない(右に空白一文字分が出来ない)
なんですけど
printf("|%-2.2s|\n", s);
printf("|%2.2s|\n", s);
で自己解決です
ちなみに
char s[4] = "A";
printf("|%.2s|\n", s); // |A| 右詰めにならない(左に空白一文字分が出来ない)
printf("|%.-2s|\n", s); // |%.0-2s| って表示される
printf("|%-.2s|\n", s); // |A| 左詰めにならない(右に空白一文字分が出来ない)
なんですけど
printf("|%-2.2s|\n", s);
printf("|%2.2s|\n", s);
で自己解決です
832デフォルトの名無しさん (ドコグロ MM13-8+FT)
2020/08/20(木) 18:55:26.23ID:6pX7b83qM >824
そもそも__FILE__や__DATE__はリテラルだが__func__ はリテラルじゃないのでそういうことはできない。
そもそも__FILE__や__DATE__はリテラルだが__func__ はリテラルじゃないのでそういうことはできない。
833デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 19:58:56.88ID:vxwYzwgQ0 >>832
そうなんですね。
とすると,
#define FILE_FUNC(func) __FILE__ ":" func
みたいにして,
実際使う場面で
FILE_FUNC(__func__)
というように引数として渡す,という方法をとればいい
ってことでしょうか。
そうなんですね。
とすると,
#define FILE_FUNC(func) __FILE__ ":" func
みたいにして,
実際使う場面で
FILE_FUNC(__func__)
というように引数として渡す,という方法をとればいい
ってことでしょうか。
834833 (ワッチョイ ff28-wQSi)
2020/08/20(木) 20:00:10.19ID:vxwYzwgQ0835デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 23:51:48.90ID:ajS/uCbw0836デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/21(金) 12:10:40.53ID:RjoBQXpc0837デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 17:03:22.67ID:/1umECfd0 ところで、何で__FILE__は直に文字列リテラルに置換され
__file__は暗黙に宣言される配列の識別子なんだろうな
まさに822が陥ったような混乱の元だと思うが
そうしなければならない理由があるのか
__file__は暗黙に宣言される配列の識別子なんだろうな
まさに822が陥ったような混乱の元だと思うが
そうしなければならない理由があるのか
838デフォルトの名無しさん (ワッチョイ ffe9-YpYZ)
2020/08/21(金) 17:31:23.64ID:J6Koy0SX0839デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/21(金) 18:15:49.48ID:GWEzflke0 ああ、だから大文字じゃないのね
840デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 18:46:45.25ID:/1umECfd0841デフォルトの名無しさん (ワッチョイ 7fad-RTUg)
2020/08/22(土) 10:09:37.81ID:K3IJhML30 >>401
> 何に使うかでそんなに変わるか?
亀レスでごめんなさい。
GUIを含むかどうかでちょと変わると思う。
WindowsならやはりVisualStuidoが便利だった。
Linux、UNIXならgcc,vi,makeの3種の神器かな?
> 何に使うかでそんなに変わるか?
亀レスでごめんなさい。
GUIを含むかどうかでちょと変わると思う。
WindowsならやはりVisualStuidoが便利だった。
Linux、UNIXならgcc,vi,makeの3種の神器かな?
842デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 11:52:50.75ID:c6c4SV8K0 for文の制御式にポインタが単独で使われているコードの意味が分かりません。
https://git.musl-libc.org/cgit/musl/tree/src/locale/catopen.c#n43
ここにある
const char *path, *p, *z;
path = getenv("NLSPATH");
for (p=path; *p; p=z) { // ← これ
...
}
こんな処理です。
繰り返しの際に実行する式にポインタを置くことで
どういう処理が行なわれているのか解説していただけないでしょうか。
どうかよろしくおねがいします。
https://git.musl-libc.org/cgit/musl/tree/src/locale/catopen.c#n43
ここにある
const char *path, *p, *z;
path = getenv("NLSPATH");
for (p=path; *p; p=z) { // ← これ
...
}
こんな処理です。
繰り返しの際に実行する式にポインタを置くことで
どういう処理が行なわれているのか解説していただけないでしょうか。
どうかよろしくおねがいします。
843デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/25(火) 11:57:23.18ID:Zt9gBA2MF *p なら文字終端 '\0' チェックしてるだけじゃね
for (p=path; *p != '\0'; p=z) {
と一緒
for (p=path; *p != '\0'; p=z) {
と一緒
844デフォルトの名無しさん (ワッチョイ 1fbb-n+O8)
2020/08/25(火) 12:06:04.67ID:IYsRryaL0 p=zの方が気になる
845842 (ワッチョイ ff28-wQSi)
2020/08/25(火) 12:36:19.71ID:c6c4SV8K0846デフォルトの名無しさん (ワッチョイ 9fbd-8gnn)
2020/08/25(火) 12:36:38.95ID:N6/CJWHL0 >>842
*p は、その位置の文字が '¥0' じゃなければループ内に入る判定。
ようするに文字列の終端にたどり着くまでループするということ。
p=z の z は、ループ内で p から見た文字列の中の ':' がある位置の次が入るようになってる。
ようするに path を ':' 区切りにした断片を一つずつ処理してる。
*p は、その位置の文字が '¥0' じゃなければループ内に入る判定。
ようするに文字列の終端にたどり着くまでループするということ。
p=z の z は、ループ内で p から見た文字列の中の ':' がある位置の次が入るようになってる。
ようするに path を ':' 区切りにした断片を一つずつ処理してる。
847デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 12:44:35.72ID:mY7DCxIU0 >>844
z = __strchrnul(p, ':'); で ':' 毎に切り出して処理して、次の項目に移動してるんでしょ
z = __strchrnul(p, ':'); で ':' 毎に切り出して処理して、次の項目に移動してるんでしょ
848デフォルトの名無しさん (ワッチョイ 1f7c-F02t)
2020/08/25(火) 12:48:06.50ID:lcyhmMWC0 strtok : ぼくの出番は・・・
849デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/25(火) 12:55:51.83ID:ch0Vj7Ea0 こういう2重ループは生理的に好きになれないw
850デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 13:24:37.63ID:c6c4SV8K0 >>848
たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。
__strchrnul()はここで定義されていますが,
http://git.musl-libc.org/cgit/musl/tree/src/string/strchrnul.c
strtok()の仕様
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
を見ても,ほとんどインターフェースも同じに思えます。
(引数の型がちょっと違う?)
strtok()関数自体を実装しているならともかく
外部から使用するのにわざわざstrtok()と仕様がそっくりな
独自の関数を用いる理由が分からないですね。
たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。
__strchrnul()はここで定義されていますが,
http://git.musl-libc.org/cgit/musl/tree/src/string/strchrnul.c
strtok()の仕様
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
を見ても,ほとんどインターフェースも同じに思えます。
(引数の型がちょっと違う?)
strtok()関数自体を実装しているならともかく
外部から使用するのにわざわざstrtok()と仕様がそっくりな
独自の関数を用いる理由が分からないですね。
851デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 14:01:32.20ID:mY7DCxIU0852デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:02:43.34ID:DOmxfygr0 再入可能じゃないからね
853デフォルトの名無しさん (ワッチョイ 7f7c-YpYZ)
2020/08/25(火) 15:06:17.67ID:fzTrphgL0 既存関数を使えばわざわざ文字列をループで処理する必要は無いと思えるけど
例えば昔から良くあるコマンドライン引数をチェックする場合などは
ループで処理するのが一般的かなと思われる
簡単なコードを書いてみたので確認してみるといいかも
https://paiza.io/projects/e/0d-LM04O2-C1g6xC2uXP5w
例えば昔から良くあるコマンドライン引数をチェックする場合などは
ループで処理するのが一般的かなと思われる
簡単なコードを書いてみたので確認してみるといいかも
https://paiza.io/projects/e/0d-LM04O2-C1g6xC2uXP5w
854デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:08:24.49ID:DOmxfygr0 コマンドライン引数にstrtokは全く向かない
引用符使われただけでアウト
ASCIIコードしか想定していない
引用符使われただけでアウト
ASCIIコードしか想定していない
855デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 15:38:28.41ID:c6c4SV8K0 >>851
ありがとうございます。
なるほど,
https://www.jpcert.or.jp/sc-rules/c-str06-c.html
にも strtok() を不用意に扱わないようにという記述がありました。
だからわざわざ,strtok()に似ているが与件文字列を変更しない
っていう内部関数を利用していたんですね。
「区切り文字による分割」みたいな処理をする場合は,
strtok()の挙動を完全に理解した上で使うか,
自分で挙動を把握できる内部関数を作るかにするよう心掛けます。
(自分で1からC言語を書けるようになるのは
当分先のことになるとは思いますが)
ありがとうございます。
なるほど,
https://www.jpcert.or.jp/sc-rules/c-str06-c.html
にも strtok() を不用意に扱わないようにという記述がありました。
だからわざわざ,strtok()に似ているが与件文字列を変更しない
っていう内部関数を利用していたんですね。
「区切り文字による分割」みたいな処理をする場合は,
strtok()の挙動を完全に理解した上で使うか,
自分で挙動を把握できる内部関数を作るかにするよう心掛けます。
(自分で1からC言語を書けるようになるのは
当分先のことになるとは思いますが)
856デフォルトの名無しさん (ラクッペペ MM4f-N8Ih)
2020/08/25(火) 18:08:51.59ID:efL3nra7M ライブラリ関数内部で同じライブラリで公開してる別の関数を呼び出すのはエラー時に滅茶苦茶になりそうだから良くない
857デフォルトの名無しさん (ワッチョイ 9f01-Dag0)
2020/08/25(火) 19:42:36.86ID:KqJVwSUy0 へぇ __strchrnul だと非マッチ時 zがヌルポにならないようになってんのか
858デフォルトの名無しさん (ワッチョイ 6ed2-1etN)
2020/08/26(水) 07:47:13.52ID:EcgUuw1J0 文字列はS-JISのこと考えて自分で作るか
逆にunicodeで全部ライブラリに任せるかしてるわ。
逆にunicodeで全部ライブラリに任せるかしてるわ。
859デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/26(水) 07:57:09.94ID:68jGS2+/0 こないだユニコード文字列を扱うライブラリを作ったんだが、Poweshellから使うとうまく動作しないでやんの
Bashだとうまくいくからシェルの文字コードが原因かなぁって
Bashだとうまくいくからシェルの文字コードが原因かなぁって
860デフォルトの名無しさん (ワッチョイ 6991-3XxJ)
2020/08/28(金) 14:09:17.18ID:Rsi3PU970 Poweshell 相手 なら UTF16で試してみて
861デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/29(土) 18:11:22.84ID:uw2IISYA0862デフォルトの名無しさん (ワッチョイ 27d2-XrX+)
2020/09/05(土) 12:34:48.17ID:inRyx+ft0 一時期ソースファイルで使われる文字コードと
テキストコマンドで指定される文字コードで混乱してた。
テキストコマンドで指定される文字コードで混乱してた。
863デフォルトの名無しさん (ワッチョイ 675f-th+2)
2020/09/05(土) 14:24:19.26ID:D6IgUwp/0 ファイルシステムもコードページあれば良いのに
864デフォルトの名無しさん (ワッチョイ 5f2f-yCsQ)
2020/09/08(火) 19:54:58.87ID:XpL2+zA20 すみません
visualstudio2019で
scanfてうまく動かないて
書き込みありまさしたが
こちらは初心者です
visualstudio2019で
scanfてうまく動かないて
書き込みありまさしたが
こちらは初心者です
865デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 20:04:29.03ID:oUJlYCUI0 何がうまくいかないの?
866デフォルトの名無しさん (ワッチョイ e7e6-dQ4P)
2020/09/08(火) 20:07:28.59ID:SzSjgAIn0 >>864
母国語でおk
母国語でおk
867デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 20:33:38.44ID:h4K4tlm90 >>866
ماذا علي أن أفعل لتحسين عمل Scanf؟
ماذا علي أن أفعل لتحسين عمل Scanf؟
868デフォルトの名無しさん (ワッチョイ 5fa5-w/i8)
2020/09/08(火) 20:57:51.12ID:dd3/c9tT0 >>864
scanf_sを使うんだよ
scanf_sを使うんだよ
869デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 21:00:35.32ID:oUJlYCUI0 自分が初心者だった頃を忘れて弱い者いじめするクズばっかり
870デフォルトの名無しさん (ワッチョイ 87e6-+pFZ)
2020/09/08(火) 21:38:18.70ID:L9CYXS2m0 ここの連中は初心者の時でもこんな愚かな質問しなかっただろうからな
871デフォルトの名無しさん (ワッチョイ 7f63-n8ne)
2020/09/08(火) 21:48:40.05ID:i07xiLbJ0 かまって欲しいだけだろう
872デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 22:29:20.68ID:h4K4tlm90 よしよし かまってあげよう おいで〜
873デフォルトの名無しさん (ワッチョイ 27bb-n8ne)
2020/09/08(火) 22:40:52.39ID:5p23t/CB0 (≧▽≦)きゃー
874デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 22:50:33.61ID:h4K4tlm90 (*-ω-)ヾ(・ω・*)ナデナデ
875デフォルトの名無しさん (ワッチョイ 1101-mScE)
2020/09/10(木) 22:31:27.77ID:XqO8hjOE0 >>869
ここ初心者向けじゃないし
ここ初心者向けじゃないし
876デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 06:53:15.69ID:Cxw4gZ+X0 クズは認めるわけか
877デフォルトの名無しさん (ワッチョイ c5e6-nmCw)
2020/09/11(金) 09:46:30.88ID:t2oJFSgB0 この初心者のほうがよっぽどクズ
878デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 11:05:17.65ID:Cxw4gZ+X0 クズを認めるからこそ比較できるわけだな
879デフォルトの名無しさん (ワッチョイ ea90-gr/N)
2020/09/11(金) 13:23:30.52ID:eRvWHPbG0 クズでもなんでもいいから正しい日本語を使って質問しなさい
880デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 16:01:28.53ID:Cxw4gZ+X0 ほらな、質問者がクズかどうかは関係ないんだよ
881デフォルトの名無しさん (ワッチョイ 8d7f-sGGD)
2020/09/11(金) 17:04:12.34ID:ua52u3Jr0 お互い(屑であると)認め合う姿は美しいですね
882デフォルトの名無しさん (ワッチョイ b501-zsLS)
2020/09/12(土) 02:19:04.35ID:SzTm78BI0 静かになるまで5分かかりました(ry
883デフォルトの名無しさん (ワッチョイ 3628-oJ0F)
2020/09/14(月) 21:43:37.62ID:8/TQSAVT0 https://hnw.はてなブログ.com/entry/20130406
この記事(海外の質問箱の邦訳)に対するコメントで,
do{
...
} while (feof(input))
というコードが提案されているのですが,どう思われますか。
少なくとも一つの問題点(余分なループ)は克服できている気がしますが。
この記事(海外の質問箱の邦訳)に対するコメントで,
do{
...
} while (feof(input))
というコードが提案されているのですが,どう思われますか。
少なくとも一つの問題点(余分なループ)は克服できている気がしますが。
884デフォルトの名無しさん (ワッチョイ eaad-pVuC)
2020/09/15(火) 00:55:31.70ID:2J2Mo0F/0 >>883
コメントって、どこにあるの?
まあしかしそう書いたとしても c = fgetc(input) をやった直後の c の値が EOF かどうかを調べる必要があって、
EOF だったらループを抜ける必要がある。do { ... } while (feof(input)); のループ内に if ((c = fgetc(input)) == EOF) break; を
入れるとすると最後の while の条件は無駄だ。決して EOF に到達していないから。
コメントって、どこにあるの?
まあしかしそう書いたとしても c = fgetc(input) をやった直後の c の値が EOF かどうかを調べる必要があって、
EOF だったらループを抜ける必要がある。do { ... } while (feof(input)); のループ内に if ((c = fgetc(input)) == EOF) break; を
入れるとすると最後の while の条件は無駄だ。決して EOF に到達していないから。
885デフォルトの名無しさん (ワッチョイ 6da9-/xaV)
2020/09/15(火) 01:38:55.84ID:GcvmEeWM0 >>883
中身が空っぽなinputだったらどうする?
中身が空っぽなinputだったらどうする?
886デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/15(火) 07:29:42.10ID:YjwP830M0 後判定といえば自明な弱点があるね
887デフォルトの名無しさん (ワッチョイ 3628-oJ0F)
2020/09/15(火) 11:24:23.73ID:DboEcGlM0888デフォルトの名無しさん (ワッチョイ eaad-pVuC)
2020/09/15(火) 13:34:11.71ID:2J2Mo0F/0 ま、しかし、よくよく考えてみると feof() って使い所がほとんどないのではないか?
fgetc() が文字だけでなく EOF まで返す仕様になっているから使わずにも書けてしまうよね。
単にEOFになった後かどうかだけを調べたい場合は fgetc() 使ったら無駄な処理になるけど。
fgetc() が文字だけでなく EOF まで返す仕様になっているから使わずにも書けてしまうよね。
単にEOFになった後かどうかだけを調べたい場合は fgetc() 使ったら無駄な処理になるけど。
889デフォルトの名無しさん (ワイーワ2 FF92-e6VR)
2020/09/15(火) 13:46:37.73ID:i/gZOuAlF そもそも feof 使わないよね?って話題だし
890デフォルトの名無しさん (ワッチョイ 1163-pVuC)
2020/09/15(火) 14:02:51.06ID:pUsOBU6W0 fgetc()等はファイルを最後まで読み取った場合だけでなくエラーの場合もEOFを返すことになってるから
どちらの状況か区別するためにfeof(),ferror()はあるんだろ
区別しなくていいなら使わんわな
どちらの状況か区別するためにfeof(),ferror()はあるんだろ
区別しなくていいなら使わんわな
891デフォルトの名無しさん (ワッチョイ ea01-hEa4)
2020/09/15(火) 14:14:08.17ID:8CWM1WbO0 >>883
ダメダメって書いてあるやろ
rero
ferror の条件が成立した場合,feof の条件は成立せず,無限ループになる.
ループ脱出条件にはfread / fscanf / fgetc などの戻り値を使う.
feof は ferror との切り分けにのみ使う.
2014/02/04
ダメダメって書いてあるやろ
rero
ferror の条件が成立した場合,feof の条件は成立せず,無限ループになる.
ループ脱出条件にはfread / fscanf / fgetc などの戻り値を使う.
feof は ferror との切り分けにのみ使う.
2014/02/04
892883 (ワッチョイ 7f28-5uLG)
2020/09/16(水) 18:30:21.50ID:+0jueX8G0 ありがとうございました。
893デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 12:37:14.53ID:3L04nVD50 関数定義の書式『例えばprintf関数なら、 int printf(const char * format, ...) 』とかで、関数の引数の型指定が含まれてるけど、これの指す具体的な意味って何?
例えば、const char*型が指定されていたとして、
1、「const char*型でなければならない」
2、「他の型も使えるがconst char*型を推奨する」
3、「色々と対応してるけど代表としてconst char*型を挙げる」
4、「1〜3のうちどれか、関数毎にケースバイケースで具体的には決まってない」
関数定義の書式における型指定には、どのような意味が込められてるんですか?
printf関数では、普通に文字列を入れた配列のポインタ(char *型)にも対応してるので、2か3なんだろうけども。
関数定義書式に含まれる型指定は、1〜4のどれなのか、C言語では統一的に指針が決まってますか?
例えば、const char*型が指定されていたとして、
1、「const char*型でなければならない」
2、「他の型も使えるがconst char*型を推奨する」
3、「色々と対応してるけど代表としてconst char*型を挙げる」
4、「1〜3のうちどれか、関数毎にケースバイケースで具体的には決まってない」
関数定義の書式における型指定には、どのような意味が込められてるんですか?
printf関数では、普通に文字列を入れた配列のポインタ(char *型)にも対応してるので、2か3なんだろうけども。
関数定義書式に含まれる型指定は、1〜4のどれなのか、C言語では統一的に指針が決まってますか?
894デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 12:40:32.43ID:OW2OZx8DF 1
895デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 12:50:38.33ID:3L04nVD50 printf関数の場合では、「char*型が使えるように見えるけど、色々と問題起きるからconst char*型以外は禁止」ということなんですか。
分かりました。
分かりました。
896デフォルトの名無しさん (ドコグロ MMdf-aBI4)
2020/09/17(木) 12:53:34.67ID:uk2B69G8M const char*はchar*の指す先を書き換えないだけで同じものなのでconst char*をchar*で初期化してなんの問題もない。暗黙変換してくれる。
逆は書き換えられないconst char*が書き換えできる様になってしまうので暗黙にはしない様になっている。
逆は書き換えられないconst char*が書き換えできる様になってしまうので暗黙にはしない様になっている。
897デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:02:01.33ID:9/9M+ZB20 こんなこともできるけどね
static /* const */ char str[] = "hello stupid people";
printf(str);
static /* const */ char str[] = "hello stupid people";
printf(str);
898デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 13:08:31.54ID:OW2OZx8DF 質問のレベルから忖度すると
質問者が気にしてるのは
ひょっとすると
...
の部分の方なのかも知れない
質問者が気にしてるのは
ひょっとすると
...
の部分の方なのかも知れない
899デフォルトの名無しさん (ワッチョイ f77c-E8AY)
2020/09/17(木) 13:10:16.65ID:/CJv2N4s0 #include <stdio.h>
int main(int ac, char **av)
{
int p = 0x000a0d41;
printf((char *)&p);
return 0;
}
int main(int ac, char **av)
{
int p = 0x000a0d41;
printf((char *)&p);
return 0;
}
900デフォルトの名無しさん (ワッチョイ bf8c-CUqR)
2020/09/17(木) 13:40:44.35ID:PwEIVjdJ0 関数定義の引数が配列で書けるようになったのはいつから
int func(array[5]){
.......
}
int func(array[5]){
.......
}
901デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:45:22.35ID:9/9M+ZB20 型指定子がないけど暗黙intってことか? 無理だと思うけど
902デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 13:46:44.16ID:OW2OZx8DF 昔から
903デフォルトの名無しさん (ワッチョイ 177f-mv5V)
2020/09/17(木) 13:52:07.27ID:qRMpu/GI0 >>899
明示変換してるのに暗黙変換もさせるのは読みづらいよ
明示変換してるのに暗黙変換もさせるのは読みづらいよ
904デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:55:11.12ID:9/9M+ZB20 つーかさ
pにアドレス演算子つけてるの
何かがわかってない兆候じゃね?
pにアドレス演算子つけてるの
何かがわかってない兆候じゃね?
905デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 14:31:37.44ID:3L04nVD50 皆さんのレスを行間を読んでまとめること、こんな感じの理解でいいですか?
代入の際、右辺の値は、左辺の型に暗黙変換される。
int a = 3.5; // duble型リテラルを暗黙変換してaには3が入る
int a = 'a' // const char型?リテラルを暗黙変換してaには文字コードを表す97が入る
int a ="ほげ"; // const char型リテラルを暗黙変換してaにはよくわからん不正値が入る
同様に、関数へ引数を渡すことも代入の一種であり、実引数が代入する側であるから代入式の右辺に相当し、仮引数が代入される側であるから左辺に相当する。
その際、実引数char*型は仮引数const char*型へ暗黙変換される。
int main(void) {
char hoge[] = "ほげ";
printf(hoge); // 実引数hogeは先頭要素を指すポインタchar*型で、暗黙変換を伴って仮引数のconst char*型となる
}
この逆、仮引数char*型に実引数const char*型を渡すのはNG。char*型とわざわざ指定されてる理由は、値を書き換え可能なポインタを求めるためであり、const char*型はダメ。
代入の際、右辺の値は、左辺の型に暗黙変換される。
int a = 3.5; // duble型リテラルを暗黙変換してaには3が入る
int a = 'a' // const char型?リテラルを暗黙変換してaには文字コードを表す97が入る
int a ="ほげ"; // const char型リテラルを暗黙変換してaにはよくわからん不正値が入る
同様に、関数へ引数を渡すことも代入の一種であり、実引数が代入する側であるから代入式の右辺に相当し、仮引数が代入される側であるから左辺に相当する。
その際、実引数char*型は仮引数const char*型へ暗黙変換される。
int main(void) {
char hoge[] = "ほげ";
printf(hoge); // 実引数hogeは先頭要素を指すポインタchar*型で、暗黙変換を伴って仮引数のconst char*型となる
}
この逆、仮引数char*型に実引数const char*型を渡すのはNG。char*型とわざわざ指定されてる理由は、値を書き換え可能なポインタを求めるためであり、const char*型はダメ。
906はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 14:32:12.65ID:FojOL81h0 >>900
型が書かれていないけどそれはタイプミスだとすれば、
配列形式で仮引数を書くこと自体は昔から出来る。
ただし、配列形式で書かれるとそれはポインタに調整される。
たとえば仮引数が int array[5] だったら int* array と全く同じとみなされる。
配列の大きさの情報は無視される。
(ひょっとすると警告を出すためのヒントにするくらいの処理系はあったりするのかもしれんけど。)
型が書かれていないけどそれはタイプミスだとすれば、
配列形式で仮引数を書くこと自体は昔から出来る。
ただし、配列形式で書かれるとそれはポインタに調整される。
たとえば仮引数が int array[5] だったら int* array と全く同じとみなされる。
配列の大きさの情報は無視される。
(ひょっとすると警告を出すためのヒントにするくらいの処理系はあったりするのかもしれんけど。)
907はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 14:42:51.44ID:FojOL81h0 >>905
暗黙の変換がされる場合とされない場合はあって、
int a ="ほげ";
で暗黙の変換をする保証はない。
C99 だと単純代入で許される型の組み合わせは 6.3.16 に書かれている。
処理系の拡張としてやっちゃうこともあるかもしれんけど、
その場合でも警告は出るんじゃないかなぁ。
> 関数へ引数を渡すことも代入の一種であり
その通りだが、関数原型 (プロトタイプ) がない場合や
可変長引数 (仮引数が ... で表されるやつ) の場合はちょっとルールが特殊な部分もある。
まちがっててもコンパイラが検出できないこともあるので気を付けないといけない。
暗黙の変換がされる場合とされない場合はあって、
int a ="ほげ";
で暗黙の変換をする保証はない。
C99 だと単純代入で許される型の組み合わせは 6.3.16 に書かれている。
処理系の拡張としてやっちゃうこともあるかもしれんけど、
その場合でも警告は出るんじゃないかなぁ。
> 関数へ引数を渡すことも代入の一種であり
その通りだが、関数原型 (プロトタイプ) がない場合や
可変長引数 (仮引数が ... で表されるやつ) の場合はちょっとルールが特殊な部分もある。
まちがっててもコンパイラが検出できないこともあるので気を付けないといけない。
908デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 16:23:39.93ID:9/9M+ZB20 処理系の拡張ねえ
gccは-pedanticつけないと黙って通す場合あるかんな
>>905
void func(char *);
func("const char array");
これconst違反なのにできちまう
gccは-pedanticつけないと黙って通す場合あるかんな
>>905
void func(char *);
func("const char array");
これconst違反なのにできちまう
909デフォルトの名無しさん (ワッチョイ bf8c-CUqR)
2020/09/17(木) 17:46:14.08ID:7hPXgG620910はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 18:43:35.04ID:FojOL81h0 >>908
C の文字列リテラルは char の配列ということになっているので char* で受け取れる。
型の視点で見ればそのコードに const は登場しない。
文字列リテラルを書き換えようとした結果は未定義であるにもかかわらず
型に const が付かない C のクソなところのひとつ。
(C++ では文字列リテラルの型には const が付く。)
C の文字列リテラルは char の配列ということになっているので char* で受け取れる。
型の視点で見ればそのコードに const は登場しない。
文字列リテラルを書き換えようとした結果は未定義であるにもかかわらず
型に const が付かない C のクソなところのひとつ。
(C++ では文字列リテラルの型には const が付く。)
911デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 19:21:07.83ID:3L04nVD50 よく見てみたら使ってるツールがC++用だった。
C言語入門本でインストールを促すソフトが大抵Visual StudioのC++で、
意識せずにC++の開発環境でC言語の勉強をしてたんだな。
それで、C言語の挙動だと思ってたのが、実はC++の挙動だったんだな。const の件もそう。
C言語入門本でインストールを促すソフトが大抵Visual StudioのC++で、
意識せずにC++の開発環境でC言語の勉強をしてたんだな。
それで、C言語の挙動だと思ってたのが、実はC++の挙動だったんだな。const の件もそう。
912デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:39:01.71ID:9/9M+ZB20913デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 19:55:04.93ID:+PkSrmT3M いくら引数リストに要素数を記述してもコンパイラは無視する
int func(int **array)と同じ扱いでただのニ重ポインタ
int func(int **array)と同じ扱いでただのニ重ポインタ
914デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:57:19.31ID:9/9M+ZB20 >>913
アホwバカwww
アホwバカwww
915デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:58:54.02ID:9/9M+ZB20 char **aho = 0;
printf("%p ", aho);
aho++;
printf("%p ", aho);
printf("%p ", array);
array++;
printf("%p ", array);
printf("%p ", aho);
aho++;
printf("%p ", aho);
printf("%p ", array);
array++;
printf("%p ", array);
916デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 19:59:49.49ID:3L04nVD50 でもまあプログラムの再利用性を考えたら、constの件は、C++仕様に配慮して省かないことが大事か。
C++に配慮したコードを書くことで、C言語でもC++でも通用するプログラムとなり、プログラムの再利用性が上がる。
C言語ではconstを省くことが文法的には認められてても・・・・・C++に流用できないプログラムは、たぶんコードとしては減点となる。
C++に配慮したコードを書くことで、C言語でもC++でも通用するプログラムとなり、プログラムの再利用性が上がる。
C言語ではconstを省くことが文法的には認められてても・・・・・C++に流用できないプログラムは、たぶんコードとしては減点となる。
917デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:03:53.36ID:FZAv8QRcM918はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:05:11.15ID:FojOL81h0919はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:08:22.99ID:FojOL81h0 >>917
配列を渡すのではなく「配列へのポインタ」だ。
配列は多くの場合に配列の先頭要素を指すポインタに暗黙に型変換されるけども、
それとは別に配列を指すポインタというものが存在し、
指す先の配列の大きさは型情報として保存される。
配列を渡すのではなく「配列へのポインタ」だ。
配列は多くの場合に配列の先頭要素を指すポインタに暗黙に型変換されるけども、
それとは別に配列を指すポインタというものが存在し、
指す先の配列の大きさは型情報として保存される。
920デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:13:48.15ID:9q71Nrm0M 関数の引数として配列を渡す場合、アドレスと要素数は別に渡す必要がある
関数内で要素数を知る手段はない
int func(int **array, int i, int j)
関数内で要素数を知る手段はない
int func(int **array, int i, int j)
921はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:14:06.25ID:FojOL81h0 int array[][5] という配列があったとしたら、その先頭要素の型は int [5] なので、
通常通り配列の先頭要素そ指す型に型変換したら int (*)[5] になるんだ。
仮引数の側もそれと同じような調整が入る。
通常通り配列の先頭要素そ指す型に型変換したら int (*)[5] になるんだ。
仮引数の側もそれと同じような調整が入る。
922デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:19:02.57ID:9q71Nrm0M それは配列の変数宣言の場合だ
仮引数の場合には当たらない
仮引数の場合には当たらない
923はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:29:34.78ID:FojOL81h0924デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:31:16.69ID:JChOP/F3M だから糖衣構文だと言ってるだろ
925はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:32:41.07ID:FojOL81h0 >>916
正直言って、const のありがたみが今一つよくわからないんですよね…
正直言って、const のありがたみが今一つよくわからないんですよね…
927デフォルトの名無しさん (ワッチョイ 17da-o3gE)
2020/09/17(木) 21:37:33.81ID:VrEKPYEi0 確認してみた
配列が仮引数の関数内で配列の型情報は失われて単なるポインタになってる
メイン関数内配列サイズ 20Byte (int[5] = 4Byte * 5)
関数内配列サイズ 8Byte (int* = 64bit)
https://i.imgur.com/nItgOZC.png
配列が仮引数の関数内で配列の型情報は失われて単なるポインタになってる
メイン関数内配列サイズ 20Byte (int[5] = 4Byte * 5)
関数内配列サイズ 8Byte (int* = 64bit)
https://i.imgur.com/nItgOZC.png
928デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 21:54:03.82ID:PVWtVfHXM そう、仮引数の配列要素数はコンパイラに無視される
ただのポインタだから配列サイズは失われている
ただのポインタだから配列サイズは失われている
929デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/17(木) 22:14:39.96ID:ysRkZn2Ya >>926
うっかり変更しようとしたら、コンパイル時にエラーになるでしょ
うっかり変更しようとしたら、コンパイル時にエラーになるでしょ
930デフォルトの名無しさん (ワッチョイ 177f-mv5V)
2020/09/17(木) 22:35:38.61ID:qRMpu/GI0931はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 22:46:13.06ID:FojOL81h0 修飾なしで const になって、変更可能な変数の場合に指定を付けるようになってればよかったのに
という声は一部では根強く有る。
もちろんそんな非互換な変更を C/C++ が受け入れるはずがないので
あくまでももしもの話というか愚痴の類なんだけど。
でも Rust がまさにそうなったので型の厳しさを指向するなら
デフォルトで変更不能な方が自然なのかもしれんね。
個人的には、 C で意識して const を付けるのは関数の仮引数くらいで十分だろう
という程度かな。 そのかわり仮引数の型付けはかなりしっかりしたい。
という声は一部では根強く有る。
もちろんそんな非互換な変更を C/C++ が受け入れるはずがないので
あくまでももしもの話というか愚痴の類なんだけど。
でも Rust がまさにそうなったので型の厳しさを指向するなら
デフォルトで変更不能な方が自然なのかもしれんね。
個人的には、 C で意識して const を付けるのは関数の仮引数くらいで十分だろう
という程度かな。 そのかわり仮引数の型付けはかなりしっかりしたい。
932デフォルトの名無しさん (ワッチョイ 17da-o3gE)
2020/09/17(木) 23:08:14.29ID:VrEKPYEi0933デフォルトの名無しさん (ワッチョイ ff63-LEsg)
2020/09/17(木) 23:13:21.69ID:aQ5w/H9b0 リソースが極限まで制限されるような環境下で動かすことがる
ハードに近い部分を書くことが多かった
最適化の精度が悪かった
みたいな時代背景があるのでデフォルトがconstはナンセンス
もちろん今の時代に1から設計するならそういう言語が出てくるのは当然
ハードに近い部分を書くことが多かった
最適化の精度が悪かった
みたいな時代背景があるのでデフォルトがconstはナンセンス
もちろん今の時代に1から設計するならそういう言語が出てくるのは当然
934デフォルトの名無しさん (ワッチョイ 177f-PS54)
2020/09/17(木) 23:27:44.50ID:qRMpu/GI0 >>932
sizeof(*array)だよ
sizeof(*array)だよ
935デフォルトの名無しさん (ラクッペペ MM8f-Y+8D)
2020/09/17(木) 23:46:44.97ID:cQbuW7S9M936はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 00:25:49.56ID:InePzAsW0 普通に array[1][3] みたいにして要素にアクセスするときでも
規格上の理屈では *(*(array+1)+3) の構文糖であるということになってて、
じゃあこれを成り立たせるにはどういう型情報があればいいのか
みたいな方向でパズル的に考えて遊んだりするのも面白いかもね。
あとここまでのやりとりで出てきてないっぽいから注意点を示しておくけど、
配列が暗黙の型変換でそれの先頭を指すポインタになるルールの例外が
sizeof を適用したときと単項 & を適用したときだよ。
規格上の理屈では *(*(array+1)+3) の構文糖であるということになってて、
じゃあこれを成り立たせるにはどういう型情報があればいいのか
みたいな方向でパズル的に考えて遊んだりするのも面白いかもね。
あとここまでのやりとりで出てきてないっぽいから注意点を示しておくけど、
配列が暗黙の型変換でそれの先頭を指すポインタになるルールの例外が
sizeof を適用したときと単項 & を適用したときだよ。
937デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 06:03:42.05ID:dDojkzke0 sizeofと&が例外って言い方よく見かけるけど
気持ちの中ではこっちが本来だね
extern int array[]; と
extern int *array; じゃ
意味違うし
気持ちの中ではこっちが本来だね
extern int array[]; と
extern int *array; じゃ
意味違うし
938デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/18(金) 06:28:13.21ID:n6muJc1p0 >>933
> リソースが極限まで制限されるような環境下で動かすことがる
> ハードに近い部分を書くことが多かった
> 最適化の精度が悪かった
なんの理由にもなってないと思うが…
単にK&Rがそう言うのに無頓着だっただけだろ
> リソースが極限まで制限されるような環境下で動かすことがる
> ハードに近い部分を書くことが多かった
> 最適化の精度が悪かった
なんの理由にもなってないと思うが…
単にK&Rがそう言うのに無頓着だっただけだろ
939デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 06:31:46.59ID:dDojkzke0 何の理由にもなってないのはそのとおりだが
なんで無頓着って話になるんだ?
アセンブラで書いていたUnicsを高級言語で書けるようにしようって作ったんだぜ?
なんで無頓着って話になるんだ?
アセンブラで書いていたUnicsを高級言語で書けるようにしようって作ったんだぜ?
940はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 09:01:10.98ID:InePzAsW0941デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 09:11:41.22ID:dDojkzke0 初心者がややこしい規則をこれから憶えようってときには
確かにあの言い方は情報量少なくて憶えやすそうだけど
初心者を卒業したらいつまでもしがみついてると格好悪いね
確かにあの言い方は情報量少なくて憶えやすそうだけど
初心者を卒業したらいつまでもしがみついてると格好悪いね
942デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/18(金) 10:09:00.07ID:n6muJc1p0943デフォルトの名無しさん (エムゾネ FFbf-SP/v)
2020/09/18(金) 10:37:02.65ID:6n8VMUNiF ラクッペペ MM8f-kMIc
↑
こいつは無視でOK
↑
こいつは無視でOK
944デフォルトの名無しさん (ワントンキン MM7f-zg3h)
2020/09/18(金) 12:10:56.45ID:3NbVdp1XM そんな感じの2次元配列の引数としてはかけるけど
実際その関数になに代入してもエラー吐くやつとかあったな
実際その関数になに代入してもエラー吐くやつとかあったな
945デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 12:52:30.78ID:dDojkzke0 関数に代入ってどゆこと?
946デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 12:54:19.87ID:dDojkzke0947デフォルトの名無しさん (ワントンキン MM7f-zg3h)
2020/09/18(金) 16:08:04.83ID:3NbVdp1XM >>945
引数になにいれてもだった
引数になにいれてもだった
948デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 20:15:43.21ID:dDojkzke0 こういうこと?
void func(int (*array)[5], int **pointer)
{
char a[2][5], *p;
array = a; //ok
pointer = a; //error
array = &p; //error
pointer = &p; //ok
}
void func(int (*array)[5], int **pointer)
{
char a[2][5], *p;
array = a; //ok
pointer = a; //error
array = &p; //error
pointer = &p; //ok
}
949はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 23:38:09.01ID:InePzAsW0950948 (ワッチョイ b7b7-Cup9)
2020/09/19(土) 09:21:06.58ID:FHaFE8730 あ、すまんw
s/char/int/g
s/char/int/g
951デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 11:02:59.46ID:Uw1s41Nc0952はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/19(土) 13:13:28.09ID:cxOsPIuF0 >>951
一応は >>949 も未定義だよ。
呼出規約が cdecl だったら余計な引数は捨てられるだけで問題にならないとは思うけど。
余計な引数を渡すのとは逆に必要な引数を渡さないという例も書けるから、
より危険性がわかりやすいかな。
https://wandbox.org/permlink/1F876xK6UZ4wFjAA
余談だけど関数定義は宣言も兼ねるというルールにおいて、
K&R スタイルの関数定義はプロトタイプを持たない宣言でもあるという扱いだから
別途プロトタイプ宣言をする分にはエラーとして検出される。
https://wandbox.org/permlink/4n574f4R9yq0BzUj
一応は >>949 も未定義だよ。
呼出規約が cdecl だったら余計な引数は捨てられるだけで問題にならないとは思うけど。
余計な引数を渡すのとは逆に必要な引数を渡さないという例も書けるから、
より危険性がわかりやすいかな。
https://wandbox.org/permlink/1F876xK6UZ4wFjAA
余談だけど関数定義は宣言も兼ねるというルールにおいて、
K&R スタイルの関数定義はプロトタイプを持たない宣言でもあるという扱いだから
別途プロトタイプ宣言をする分にはエラーとして検出される。
https://wandbox.org/permlink/4n574f4R9yq0BzUj
953デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 14:57:40.15ID:Uw1s41Nc0954デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 14:57:50.91ID:Uw1s41Nc0 すまんsage
955デフォルトの名無しさん (ワッチョイ 9f26-XaKm)
2020/09/21(月) 03:21:46.70ID:SqQ7e3H60 >>952
普通先行宣言をちゃんとするだろ
普通先行宣言をちゃんとするだろ
956はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 08:57:54.77ID:sulqQktu0 >>955
普通はする。 すべきだ。 というのがどれほどあてになるか。
普通はすることを (うっかり) しなかったら (エラーとして検出されずに) 通ってしまうってのは
K&R スタイルの関数定義はイケてないねって話。
普通はする。 すべきだ。 というのがどれほどあてになるか。
普通はすることを (うっかり) しなかったら (エラーとして検出されずに) 通ってしまうってのは
K&R スタイルの関数定義はイケてないねって話。
957はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 08:59:37.43ID:sulqQktu0 K&R スタイルでなくともファイルを分割すると宣言と定義の矛盾が検出されなかったりもする。
// foo.c
void foo(int x) {
}
// foo.h
void foo(void);
// main.c
#include "foo.h"
int main(void) {
foo();
}
このとき foo.c をコンパイルするだけなら foo.h は不要だが
foo.c で foo.h をインクルードしておかないと間違いは検出できない。
// foo.c
void foo(int x) {
}
// foo.h
void foo(void);
// main.c
#include "foo.h"
int main(void) {
foo();
}
このとき foo.c をコンパイルするだけなら foo.h は不要だが
foo.c で foo.h をインクルードしておかないと間違いは検出できない。
958デフォルトの名無しさん (アウウィフ FF5b-SP/v)
2020/09/21(月) 10:49:53.26ID:M8W5JifWF linkエラーは?
959デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/21(月) 11:10:21.40ID:WONfy98d0960デフォルトの名無しさん (アウウィフ FF5b-SP/v)
2020/09/21(月) 11:19:45.80ID:M8W5JifWF 実行時にスタック壊れたり
hangupしたりするんです?
hangupしたりするんです?
961はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 12:59:37.93ID:sulqQktu0962デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/21(月) 17:40:26.50ID:PNFNM3Vd0 > 現代の実装技術なら検出できないことはないはずなんだが、
ちゃんとやってるよ
外部参照名の長さの上限を増やすという
後方互換性を損なわない賢いやり方で
それの恩恵を有り難く頂戴しているのがC++
ちゃんとやってるよ
外部参照名の長さの上限を増やすという
後方互換性を損なわない賢いやり方で
それの恩恵を有り難く頂戴しているのがC++
963デフォルトの名無しさん (ドコグロ MMdf-RDjc)
2020/09/21(月) 20:06:59.96ID:CAa9Vr4hM 意味わからん
マンダリングしてるC処理系なんてあったっけ?
別にオブジェクトコードに含ませなくてもデバッグ情報に含ませといてチェックするとかでも良いと思うけどね
マンダリングしてるC処理系なんてあったっけ?
別にオブジェクトコードに含ませなくてもデバッグ情報に含ませといてチェックするとかでも良いと思うけどね
964デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/21(月) 21:16:44.87ID:PNFNM3Vd0 s/マンダリング/マングリング/g
965デフォルトの名無しさん (バッミングク MM4f-ejv8)
2020/09/21(月) 21:27:28.62ID:r8sxqPhqM >>963
32bitWindows向けのstdcallは引数等で使うスタックサイズを名前の後ろに付け加える
32bitWindows向けのstdcallは引数等で使うスタックサイズを名前の後ろに付け加える
966デフォルトの名無しさん (ワッチョイ 9f47-SP/v)
2020/09/22(火) 02:46:33.89ID:EwzeVKsQ0 本人が間違ってる分には無視すれば良いだけだが
初心者スレで嘘を撒き散らすのは良くないな
初心者スレで嘘を撒き散らすのは良くないな
967デフォルトの名無しさん (アウアウウー Sa5b-e7tI)
2020/09/22(火) 09:19:28.05ID:73EWHT9ca volatileオブジェクトへのアクセスは副作用を生じるというのを見たことがあるのですが
この場合の副作用とは具体的にはどういう事象のことを言っているのでしょうか?
この場合の副作用とは具体的にはどういう事象のことを言っているのでしょうか?
968デフォルトの名無しさん (ワッチョイ bfe9-Cup9)
2020/09/22(火) 09:29:18.39ID:GaogVwml0 >>967
具体例としては、 volatile なオブジェクトへのポインタを通したアクセスをメモリマップドI/Oと対応させることが多い。
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%83%89I/O
具体例としては、 volatile なオブジェクトへのポインタを通したアクセスをメモリマップドI/Oと対応させることが多い。
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%83%89I/O
969デフォルトの名無しさん (オイコラミネオ MMab-bB21)
2020/09/22(火) 11:37:01.89ID:duZr+LV8M >>967
遅くなることがあるということかな?
遅くなることがあるということかな?
970デフォルトの名無しさん (アウアウウー Sa5b-e7tI)
2020/09/22(火) 12:21:55.75ID:73EWHT9ca971デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/22(火) 12:26:59.11ID:ZRR+59kRa 最適化によって、本来は必要な処理がコンパイラによって省かれてしまうとか
972デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/22(火) 12:28:12.05ID:ZRR+59kRa コンパイラの判断によって、一部のコードが生成されないとか
973デフォルトの名無しさん (ワッチョイ 177f-PS54)
2020/09/22(火) 12:48:41.23ID:fNKq19I/0974デフォルトの名無しさん (ワッチョイ bfe9-Cup9)
2020/09/22(火) 13:01:07.61ID:GaogVwml0 >>970
副作用 (プログラム)
https://ja.wikipedia.org/wiki/%E5%89%AF%E4%BD%9C%E7%94%A8_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0)
> プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。
C言語における定義はこんな感じ。
http://kikakurui.com/x3/X3010-2003-01.html#13
> ボラタイルオブジェクトへのアクセス,オブジェクトの変更,ファイルの変更,又はこれらのいずれか
> の操作を行う関数の呼出しは,すべて副作用(side effect)と呼び(11),実行環境の状態に変化を生じる。
副作用 (プログラム)
https://ja.wikipedia.org/wiki/%E5%89%AF%E4%BD%9C%E7%94%A8_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0)
> プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。
C言語における定義はこんな感じ。
http://kikakurui.com/x3/X3010-2003-01.html#13
> ボラタイルオブジェクトへのアクセス,オブジェクトの変更,ファイルの変更,又はこれらのいずれか
> の操作を行う関数の呼出しは,すべて副作用(side effect)と呼び(11),実行環境の状態に変化を生じる。
975967 (アウアウウー Sa5b-e7tI)
2020/09/22(火) 17:15:02.44ID:73EWHT9ca 回答ありがとうございました
組み込みの資料か何かでvolatileの副作用についての記述があり質問させていただきました
副作用の意味がいまいち分かってないみたいなので勉強します
組み込みの資料か何かでvolatileの副作用についての記述があり質問させていただきました
副作用の意味がいまいち分かってないみたいなので勉強します
976デフォルトの名無しさん (ワッチョイ d602-lsHo)
2020/09/26(土) 02:24:05.62ID:AJ59WF/j0 int main(double a, double b)
{
printf("main");
}
{
printf("main");
}
977デフォルトの名無しさん (アウアウエー Saaa-LUZf)
2020/09/26(土) 02:27:39.44ID:80lZAyo5a コンパイル通るのかな….
978デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/26(土) 05:50:57.90ID:JvTrRG8q0 (void)と(int, char**)以外は処理系定義
コンパイラが対応していれば適格
対応していなければ未定義
コンパイラが対応していれば適格
対応していなければ未定義
979デフォルトの名無しさん (ブーイモ MM5b-ODSS)
2020/09/27(日) 13:50:39.37ID:LQE5yA3hM crtstartupのお仕事だからコンパイラほぼ関係ないな
大抵の実用リンカは差し替えできるでしょ
大抵の実用リンカは差し替えできるでしょ
980デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 07:00:27.18ID:BXhKM0Xn0 数値リテラル「0」の型は何ですか?
int* p = 0; // これはOK
int* p = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?
int* p = (unsigned int)0; // これもエラーで無理。
printf("%zu", sizeof(0)); // 0の型のサイズを調べると4byteと表示される。
この数値リテラルの「0」の型は何ですか?
ちなみに、まだC言語環境を構築してないから、代わりVisualC++を使ってるけど、他の環境でも起きますか?
int* p = 0; // これはOK
int* p = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?
int* p = (unsigned int)0; // これもエラーで無理。
printf("%zu", sizeof(0)); // 0の型のサイズを調べると4byteと表示される。
この数値リテラルの「0」の型は何ですか?
ちなみに、まだC言語環境を構築してないから、代わりVisualC++を使ってるけど、他の環境でも起きますか?
981デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 07:30:53.01ID:BXhKM0Xn0 さらに調べると・・・・
キャスト演算子で型を指定した0は、代入の際にint*型へ変換してくれない。
接尾語を付けて型を指定した0は、代入の際にint*型に変換してくれる。
int* p = (long int)0; // NG
int* p = 0L; // OK
int* p = (unsigned int)0; // NG
int* p = 0u; // OK
キャスト演算子で型を指定すると、代入の際の暗黙的な変換が禁止される仕様とかあるんですか?
キャスト演算子で型を指定した0は、代入の際にint*型へ変換してくれない。
接尾語を付けて型を指定した0は、代入の際にint*型に変換してくれる。
int* p = (long int)0; // NG
int* p = 0L; // OK
int* p = (unsigned int)0; // NG
int* p = 0u; // OK
キャスト演算子で型を指定すると、代入の際の暗黙的な変換が禁止される仕様とかあるんですか?
982デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 07:54:15.67ID:QxfbhGyV0 >>980
intだよ
D:\learn>gcc --version
gcc (Rev2, Built by MSYS2 project) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
D:\learn>gcc 980.c
D:\learn>gcc 980.c -pedantic -Wall
980.c: In function 'main':
980.c:9:10: warning: unused variable 'p3' [-Wunused-variable]
9 | int* p3 = (unsigned int)0; //
| ^~
980.c:8:10: warning: unused variable 'p2' [-Wunused-variable]
8 | int* p2 = (int)0; // ntintnt*nt
| ^~
980.c:7:10: warning: unused variable 'p1' [-Wunused-variable]
7 | int* p1 = 0; // K
| ^~
-Wallにするとunusedって警告でるけど型の話じゃないね
intだよ
D:\learn>gcc --version
gcc (Rev2, Built by MSYS2 project) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
D:\learn>gcc 980.c
D:\learn>gcc 980.c -pedantic -Wall
980.c: In function 'main':
980.c:9:10: warning: unused variable 'p3' [-Wunused-variable]
9 | int* p3 = (unsigned int)0; //
| ^~
980.c:8:10: warning: unused variable 'p2' [-Wunused-variable]
8 | int* p2 = (int)0; // ntintnt*nt
| ^~
980.c:7:10: warning: unused variable 'p1' [-Wunused-variable]
7 | int* p1 = 0; // K
| ^~
-Wallにするとunusedって警告でるけど型の話じゃないね
983デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 08:00:54.96ID:QxfbhGyV0 >>981
D:\learn>cl 980.c /W4
Microsoft(R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
980.c
980.c(8): warning C4047: '初期化中': 間接参照のレベルが 'int *' と 'int' で異なっています。
980.c(9): warning C4189: 'p3': ローカル変数が初期化されましたが、参照されていません
980.c(7): warning C4189: 'p1': ローカル変数が初期化されましたが、参照されていません
980.c(8): warning C4189: 'p2': ローカル変数が初期化されましたが、参照されていません
Microsoft (R) Incremental Linker Version 14.27.29111.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:980.exe
980.obj
参照されていませんという警告は型の話ではないのでここではスルー
型についての警告が出ている8行目とやらはこれ
> int* p2 = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?
隣の9行目は警告されていない(しかも/W4で)
> int* p3 = (unsigned int)0; // これもエラーで無理。
おそらくclが警告しているのはXXX*とXXXでポインタの間接段数を間違えたんだろうということ
これなら9行目はXXX*とYYYで間接段数の問題ではないので黙っているという説明がつく
D:\learn>cl 980.c /W4
Microsoft(R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
980.c
980.c(8): warning C4047: '初期化中': 間接参照のレベルが 'int *' と 'int' で異なっています。
980.c(9): warning C4189: 'p3': ローカル変数が初期化されましたが、参照されていません
980.c(7): warning C4189: 'p1': ローカル変数が初期化されましたが、参照されていません
980.c(8): warning C4189: 'p2': ローカル変数が初期化されましたが、参照されていません
Microsoft (R) Incremental Linker Version 14.27.29111.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:980.exe
980.obj
参照されていませんという警告は型の話ではないのでここではスルー
型についての警告が出ている8行目とやらはこれ
> int* p2 = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?
隣の9行目は警告されていない(しかも/W4で)
> int* p3 = (unsigned int)0; // これもエラーで無理。
おそらくclが警告しているのはXXX*とXXXでポインタの間接段数を間違えたんだろうということ
これなら9行目はXXX*とYYYで間接段数の問題ではないので黙っているという説明がつく
984デフォルトの名無しさん (ワッチョイ 6b05-b+lb)
2020/09/28(月) 08:46:00.83ID:E0ldxkXM0 0だけは特別にポインタにキャスト可能な仕様なんじゃよ
0がいい 0になろう
0がいい 0になろう
985デフォルトの名無しさん (ワッチョイ 1ee9-b+lb)
2020/09/28(月) 08:46:40.00ID:IwymMB/J0 >>980
0 の型は int だけど、空ポインタ定数 "null pointer constant" なので、すべてのポインタ型への暗黙変換が効く。
http://kikakurui.com/x3/X3010-2003-01.html#39
> 値0をもつ整数定数式又はその定数式を型void *にキャストした式を,空ポインタ定数(null pointer constant)と呼ぶ。
(int)0 になると空ポインタ定数ではなくなるので、ポインタに暗黙変換できなくなり、初期化・代入できなくなる。
0 の型は int だけど、空ポインタ定数 "null pointer constant" なので、すべてのポインタ型への暗黙変換が効く。
http://kikakurui.com/x3/X3010-2003-01.html#39
> 値0をもつ整数定数式又はその定数式を型void *にキャストした式を,空ポインタ定数(null pointer constant)と呼ぶ。
(int)0 になると空ポインタ定数ではなくなるので、ポインタに暗黙変換できなくなり、初期化・代入できなくなる。
986デフォルトの名無しさん (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:14:55.72ID:QIpyCS2B0 >>981
int* p = (long int)0; // NG
int* p = (unsigned int)0; // NG
long, unsigned は、int 型と、数値の範囲が異なる。
int 型しかキャストできないのでは?
int* p = (long int)0; // NG
int* p = (unsigned int)0; // NG
long, unsigned は、int 型と、数値の範囲が異なる。
int 型しかキャストできないのでは?
987986 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:19:20.10ID:QIpyCS2B0 0 アドレスの特別ルールか
988デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 09:26:33.33ID:QxfbhGyV0 0も厳格にはマジックナンバーだが
現実のシステムで0番地なんか普通の変数に使えなくていいから
理に適ってる
現実のシステムで0番地なんか普通の変数に使えなくていいから
理に適ってる
989デフォルトの名無しさん (ワッチョイ 1ee9-b+lb)
2020/09/28(月) 09:47:47.09ID:IwymMB/J0 アドレスは関係ないよ。
http://www.kouno.jp/home/c_faq/c5.html#5
http://www.kouno.jp/home/c_faq/c5.html#5
990デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 10:10:46.96ID:BXhKM0Xn0 >>982
むつかしくてわからないのでひらがなでおねがいします
>>985
こんな感じで理解しておけばいいですか?
・整数定数式としての「0」とは、ソースコードに直接書かれた「0」で、評価されて返ってきた「(int)0 ⇒ 0」や「4 - 4 ⇒ 0」などの「0」は整数定数式とは言わない。
・同じ0でも、void*型の「0」や、整数定数式としての「0」だけを空ポインタ定数と呼び、空ポインタ定数は代入の際にポインタ型へ暗黙変換できる。
よって
int* p = (int)0; // 「(int)0」が評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 4-4; // 同様に、評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 0; // 定数式としての「0」だから代入OK
型と値が一緒の、同じint型の「0」であっても、定数式と返り値とでは、それぞれの持ってる機能が違うということですか?
むつかしくてわからないのでひらがなでおねがいします
>>985
こんな感じで理解しておけばいいですか?
・整数定数式としての「0」とは、ソースコードに直接書かれた「0」で、評価されて返ってきた「(int)0 ⇒ 0」や「4 - 4 ⇒ 0」などの「0」は整数定数式とは言わない。
・同じ0でも、void*型の「0」や、整数定数式としての「0」だけを空ポインタ定数と呼び、空ポインタ定数は代入の際にポインタ型へ暗黙変換できる。
よって
int* p = (int)0; // 「(int)0」が評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 4-4; // 同様に、評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 0; // 定数式としての「0」だから代入OK
型と値が一緒の、同じint型の「0」であっても、定数式と返り値とでは、それぞれの持ってる機能が違うということですか?
991デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 10:24:28.53ID:QxfbhGyV0 >>990
じーしーしーのばーじょんをかくにんしてから
おまえさんのこーどをくわせてみてるんだよ
せんげんだけしてつかってないへんすうがあるのをけいこくされているけど
それはおまえさんがきにしてるかたのもんだいじゃなさそうだねっていってるの
じーしーしーのばーじょんをかくにんしてから
おまえさんのこーどをくわせてみてるんだよ
せんげんだけしてつかってないへんすうがあるのをけいこくされているけど
それはおまえさんがきにしてるかたのもんだいじゃなさそうだねっていってるの
992デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 10:34:20.53ID:BXhKM0Xn0993デフォルトの名無しさん (エムゾネ FF32-0ian)
2020/09/28(月) 11:51:02.18ID:PXJ7xAyjF NULL == 0 // true
ちなみに0は
ちなみに0は
994デフォルトの名無しさん (エムゾネ FF32-0ian)
2020/09/28(月) 11:51:34.94ID:PXJ7xAyjF NULL == 0 // true
ちなみに0は8進数な
ちなみに0は8進数な
995デフォルトの名無しさん (ワントンキン MM42-S6Ic)
2020/09/28(月) 12:33:12.25ID:Iit1NWg4M NULL == 0 // true
ちなみに0は8進数なんてことなく10進数なんてことなく16進数なんてこともない
ちなみに0は8進数なんてことなく10進数なんてことなく16進数なんてこともない
996デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 13:16:35.37ID:QxfbhGyV0 いや8進数だよ
0xで始まったら16進数
0で始まったら8進数
こんな関数作って見たらわかるよ
syukudai("210") == 210
syukudai("110") == 110
syukudai("010") == 8
syukudai("0x10") == 16
0xで始まったら16進数
0で始まったら8進数
こんな関数作って見たらわかるよ
syukudai("210") == 210
syukudai("110") == 110
syukudai("010") == 8
syukudai("0x10") == 16
997デフォルトの名無しさん (ワッチョイ 92a5-6ZJT)
2020/09/28(月) 13:27:42.04ID:zovFJ8Ky0 次スレは
998デフォルトの名無しさん (ブーイモ MM0e-Nkam)
2020/09/28(月) 14:23:39.09ID:qeCUoC3kM みんなの心の中にいつまでもいるさ
999デフォルトの名無しさん (ワッチョイ 6b4e-gvfU)
2020/09/28(月) 14:46:36.10ID:MwxSOqxv0 質問いいですか?
1000デフォルトの名無しさん (ワントンキン MM42-S6Ic)
2020/09/28(月) 14:57:57.86ID:Iit1NWg4M10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 140日 15時間 37分 31秒
新しいスレッドを立ててください。
life time: 140日 15時間 37分 31秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- 体調不良で番組欠席続く山里亮太「この度は申し訳ございません」 [ひかり★]
- 日帝復活 ソースは高市 [402859164]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 【高市速報】中国「このままだと日本が先制攻撃してくる」 [583597859]
- ケンモメンが多分一番読んでる小説って普通にこれだよな [126644339]
- 【悲報】高市早苗の出国税、日本人も対象にwmwmwwmwmwmwmw [834922174]
