[表示 : 全て 最新50 1-99 101- 201- 2ch.scのread.cgiへ]
Update time : 03/16 16:29 / Filesize : 81 KB / Number-of Response : 287
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 139



1 名前:デフォルトの名無しさん(ワッチョイ 0b7b-+OgX) [2017/02/22(水) 18:55:55.41 ID:xeEkzIw00.net]
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C11
www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


echo.2ch.net/test/read.cgi/tech/1481372036/
www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

2 名前:デフォルトの名無しさん (ワッチョイ 7ba1-sbgu) [2017/02/22(水) 20:12:40.70 ID:BVjvbr4Q0.net]
< `∀´>ニダー

3 名前:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ) mailto:sage [2017/02/23(木) 10:08:32.31 ID:Reif/Spj0.net]
数値演算はint型が最速と言われてるけど、64bitプロセッサでも同じと考えていいかな。
実際にそう書かれてるページが多いし。腑に落ちないけどそう理解してる。
更新するビット数が少ないから高速なのか?

4 名前:デフォルトの名無しさん (ワッチョイ a37b-mxZJ) [2017/02/23(木) 10:26:10.02 ID:sZtROie80.net]
>>3
int_fast32_t 32の部分は自分の必要な精度に入れ換えて

5 名前:デフォルトの名無しさん (JP 0H0b-Ccab) mailto:sage [2017/02/23(木) 11:53:45.45 ID:WEvoRPmmH.net]
仮に単独では64ビットが最速としても
配列とかで多量に使えばキャッシュが溢れて遅くなるというケースもある
真の最速整数型が欲しいなら、対象のCPUでいろいろな組合せを試すしかない

6 名前:デフォルトの名無しさん (ワッチョイ a319-WLWd) mailto:sage [2017/02/24(金) 00:43:20.13 ID:cpdcPEPh0.net]
恐れ入ります。お尋ねしてもよろしいですか。
わたくし、関数を定義いたしますマクロと、関数をお呼になられるマクロを定義いたしましたの。
関数をお呼びになられるマクロを使いましてご展開されるおり、関数を定義いたしますマクロが自動的に
ご展開なさるようにいたしたいことよ。
もしお存じ上げられるお方がいらっしゃいましたら、ぜひご意見をお伺いたくってよ。
では、ごきげんよう。

7 名前:デフォルトの名無しさん (ワッチョイ 0a17-d4M5) mailto:sage [2017/02/24(金) 01:10:28.42 ID:tA8wO5PS0.net]
ナニコレ??

8 名前:デフォルトの名無しさん (ワッチョイ 8a41-zLYe) mailto:sage [2017/02/24(金) 02:53:11.32 ID:y7fe+xLc0.net]
スベってるな

9 名前:デフォルトの名無しさん (ワッチョイ 065b-LqKA) mailto:sage [2017/02/24(金) 05:47:55.28 ID:NKFDYFgs0.net]
C言語初心者なんです、とりあえずここまで勉強したら大体のプログラムが書けるっていうところはありますか?

10 名前:デフォルトの名無しさん (ワッチョイ bf7b-FQj1) mailto:sage [2017/02/24(金) 06:59:24.53 ID:Rno5Qv0S0.net]
ありません



11 名前:デフォルトの名無しさん (フリッテル MM96-C5po) mailto:sage [2017/02/24(金) 15:53:27.60 ID:86ctwbLEM.net]
>>9
構造化プログラミング
データ構造とアルゴリズム
プロセッサとメモリの基本動作原理
ポインタ
構造体
配列

12 名前:デフォルトの名無しさん (ワッチョイ 8ec9-8lb6) mailto:sage [2017/02/24(金) 16:56:06.69 ID:jIC6X1VU0.net]
>>9
getoptの使い方
標準入力の読み方
printf

まずこの3つをマスターしよう

13 名前:デフォルトの名無しさん (ワッチョイ a3e3-bUuO) [2017/02/25(土) 18:25:33.13 ID:euV/G24E0.net]
>>9
lsのソースコードを読める
がんばれ

14 名前:デフォルトの名無しさん (ラクッペ MM33-RcHU) [2017/02/26(日) 19:23:04.12 ID:V8RtWR1+M.net]
未だにyaccなんかに頼ってちゃ駄目だ
という事で新しいパーサを一緒に考えてくれる人いません?

15 名前:デフォルトの名無しさん (ワッチョイ 233b-8xjF) mailto:sage [2017/02/26(日) 20:12:59.60 ID:Ui2+UTYM0.net]
そこはもう、Haskell で書くしかないな。

16 名前:デフォルトの名無しさん (JP 0H0b-Ccab) mailto:sage [2017/02/26(日) 20:31:54.73 ID:zlk72IFVH.net]
Happyだって、見た目はほぼyacc

17 名前:デフォルトの名無しさん (ワッチョイ 1f7b-yozQ) mailto:sage [2017/02/26(日) 21:42:00.44 ID:jyTublGL0.net]
>>14
yaccと比べて何がどう改善されたパーサを作るのか

18 名前:デフォルトの名無しさん (ワッチョイ 6afa-frRf) [2017/02/27(月) 07:18:08.91 ID:0mBN5Hn20.net]
yacc を使おうとして挫折したのか?

19 名前:デフォルトの名無しさん (ワッチョイ bb7b-J5+o) mailto:sage [2017/02/27(月) 08:40:15.55 ID:wcG6k+HH0.net]
yaccじゃC++のパーザ記述できないだろ

20 名前:デフォルトの名無しさん (JP 0Hc7-7RjZ) mailto:sage [2017/02/27(月) 08:49:45.47 ID:cQVaqrK/H.net]
>>9
他言語経験者かな?

・前方宣言とヘッダとよく使うプリプロセッサ文を把握
・メモリ配置(スタック・ヒープ・静的記憶)の違い・使い分けを把握
・文字列の概念と操作を把握
・その他Cでどういうケースでポインタが使われるかを把握
・変数が初期化されないワナを頭に叩き込む

あとはまぁ言語よりライブラリの選択と
OSやCPUの周辺知識の方が重要な事が多い



21 名前:デフォルトの名無しさん (ワッチョイ 1f7b-yozQ) mailto:sage [2017/02/28(火) 19:42:47.39 ID:4nfK1Rf+0.net]
暇なのでネタ投下

x面体のサイコロy個を振って得られる出目のヒストグラムを出力するプログラムを作ろう
dice.exe 6 3 (6面体のサイコロ3個) の出力例
出目 出現回数 出現率
---- -------- ------
  3    1  0.46
  4    3  1.39
  5    6  2.78
  6    10  4.63
  7    15  6.94
  8    21  9.72
  9    25 11.57
 10    27 12.50
 11    27 12.50
 12    25 11.57
 13    21  9.72
 14    15  6.94
 15    10  4.63
 16    6  2.78
 17    3  1.39
 18    1  0.46

22 名前:デフォルトの名無しさん (フリッテル MM96-C5po) mailto:sage [2017/03/01(水) 13:58:21.66 ID:Zp9/LnCHM.net]
これ組み合わせ爆発じゃないの
100 100とか
数式2,3発の繰り返しで解けるん?

23 名前:デフォルトの名無しさん (JP 0H4a-8lb6) mailto:sage [2017/03/01(水) 14:12:58.32 ID:SH8mWFxKH.net]
if(scanf("%d/%d/%d",&ip[i][0], &ip[i][1], &ip[i][2]) != 3)

2016/9/31 
こんな感じにしたいだけなんですけど
このscanfの「/」って、これであってるの?

24 名前:デフォルトの名無しさん (ドコグロ MMc2-8xjF) mailto:sage [2017/03/01(水) 14:56:55.78 ID:CsmSQFfHM.net]
>>22
全部数えるつもりかっ!

多項定理だけど、やり方考えれば簡単だよ。

25 名前:デフォルトの名無しさん (ドコグロ MMc2-KtvH) mailto:sage [2017/03/01(水) 18:58:24.59 ID:U+4Jaa7CM.net]
>>23
あってる

26 名前:デフォルトの名無しさん (JP 0H3f-BJNc) mailto:sage [2017/03/02(木) 12:18:48.45 ID:d45T9FBrH.net]
バスケットの試合だけど
1 3 2 4って入力して
1 対 3
2 対 4
scanf("%d %d", a, b);
scanf("%d %d", c, d);
戦わせたいけど、どうすればいい?
1234なら出来ます

27 名前:デフォルトの名無しさん (JP 0H3f-BJNc) mailto:sage [2017/03/02(木) 12:20:28.47 ID:d45T9FBrH.net]
バスケットの試合だけど
1 3 2 4って入力して
1 対 3
2 対 4
scanf("%d %d", a, b);
scanf("%d %d", c, d);
戦わせたいけど、どうすればいい?
1234なら出来ます

28 名前:デフォルトの名無しさん (JP 0H6f-x83U) mailto:sage [2017/03/02(木) 12:30:29.26 ID:ThTFWtPOH.net]
誰か、日本語に翻訳してくれる?

29 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/02(木) 19:58:32.35 ID:im503L5qM.net]
scanf("%d %d %d %d", a, b, c, d);
printf("%d 対 %d\n", a, b);
printf("%d 対 %d\n", c, d);

30 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/02(木) 19:59:53.68 ID:rOcShz1+M.net]
&忘れた
scanf("%d %d %d %d", &a, &b, &c, &d);



31 名前:デフォルトの名無しさん (JP 0H3f-BJNc) mailto:sage [2017/03/02(木) 20:54:24.64 ID:5j/mvvA0H.net]
2431って、選択した場合、どうすればいい?

32 名前:デフォルトの名無しさん (ワッチョイ 6b3c-BJNc) mailto:sage [2017/03/02(木) 21:01:29.33 ID:1Cz3jM3f0.net]
こんな短いセンテンスなのに日本語になってねぇっぇぇ

33 名前:デフォルトの名無しさん (ワッチョイ ef5b-prdN) mailto:sage [2017/03/02(木) 21:51:36.92 ID:i/E5609c0.net]
>>20
c言語が初めてです

34 名前:デフォルトの名無しさん (ワッチョイ ef5b-prdN) mailto:sage [2017/03/02(木) 21:52:35.03 ID:i/E5609c0.net]
>>11
おお!入門書によく書いてある!

35 名前:デフォルトの名無しさん (ワッチョイ ef5b-prdN) mailto:sage [2017/03/02(木) 21:53:39.85 ID:i/E5609c0.net]
>>12
getopt?ありがとうございます

36 名前:デフォルトの名無しさん (ワッチョイ ef5b-prdN) mailto:sage [2017/03/02(木) 21:55:50.31 ID:i/E5609c0.net]
>>11
cpuの作り方って本読めばいいですか?

37 名前:デフォルトの名無しさん (アウアウカー Sa6f-tCEH) mailto:sage [2017/03/02(木) 22:09:22.01 ID:5e6GrT/2a.net]
ひでーなw

38 名前:デフォルトの名無しさん (ワッチョイ 1f17-NqFr) mailto:sage [2017/03/03(金) 00:40:14.71 ID:k4+TCMnG0.net]
>>34
入門書読んでるならまずその本を理解したほうが早い
その入門書には>>11の事も書いてあるみたいだから
なおのことだぁね

39 名前:デフォルトの名無しさん (ワッチョイ ef5b-prdN) mailto:sage [2017/03/03(金) 05:56:03.66 ID:E6sRhrGi0.net]
>>38
分かりました!ありがとうございます!

40 名前:デフォルトの名無しさん (JP 0H3f-BJNc) mailto:sage [2017/03/03(金) 12:13:23.53 ID:+HYzVfFdH.net]
>>27
オレもわからん
誰かわかる人いないの?



41 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/03(金) 12:26:01.73 ID:qPJvyZtuM.net]
>>40
>>29-30

42 名前:デフォルトの名無しさん (JP 0H3f-BJNc) mailto:sage [2017/03/03(金) 13:45:06.80 ID:+HYzVfFdH.net]
>>31

43 名前:デフォルトの名無しさん (ワッチョイ 0f4f-2BvX) mailto:sage [2017/03/03(金) 14:21:40.68 ID:Er93SBHi0.net]
>>32

44 名前:デフォルトの名無しさん (ドコグロ MM3f-KW4d) mailto:sage [2017/03/03(金) 15:29:51.13 ID:IC83RcbMM.net]
>>37

45 名前:デフォルトの名無しさん (ワッチョイ 3bba-Mt2S) mailto:sage [2017/03/03(金) 22:39:07.27 ID:Jp23eHYS0.net]
初めまして
CCSC社のPICコンパイラで以下の問題が出てます、多分知識不足だと思うのですが、Cの挙動に関する知識でどういう所が足りないのでしょうか?

char string[5]; //UARTを受ける変数枠
float32 sig_ch; //UARTから数字へと変換したい

GETS(string); // UART文字列をかくほ
sig_ch = atoi(string); // ここで文字列から数字に変換する(このためにstdlib.hを使う)


if(sig_ch % 16 == 0){
set_4067_00();
}
else if((sig_ch%16)/0.0625 == 1){
set_4067_01();
}

と設定しているにもかかわらず、このif-else分だけ通りません。(他のif-elseは今の所エラーは吐いてない)
if文が16にOnly integers are supported for this operation
else if 文すべては elseにA numeric expression must appear here
となっています

46 名前:デフォルトの名無しさん (ワッチョイ 8b9b-x83U) mailto:sage [2017/03/03(金) 22:50:41.79 ID:qE+VJ28k0.net]
まずその前にsig_ch%16の結果は0.0625になりえないんじゃ?
(/0.0625で1になることがない)

47 名前:デフォルトの名無しさん (ワッチョイ 8b9b-x83U) mailto:sage [2017/03/03(金) 22:54:39.58 ID:qE+VJ28k0.net]
あ、float型なのか
float型に剰余計算(%)は出来ないからfmodとか関数を使う

48 名前:デフォルトの名無しさん (ワッチョイ 3bba-Mt2S) mailto:sage [2017/03/03(金) 22:57:05.38 ID:Jp23eHYS0.net]
そうですか?
MATLABのコンソールを使って計算した時には1の位以上に整数が出ましたがxx.0625刻みで増えて行ってくれました。
それを見て、どの型で宣言しているかは分からないけど、余りの少数も取ればいいと思っていました

あれこの場合、余りって…どこからだろう?

49 名前:デフォルトの名無しさん (ワッチョイ 3bba-Mt2S) mailto:sage [2017/03/03(金) 22:59:54.16 ID:Jp23eHYS0.net]
>>47
math.hで使えるみたいですね、多分実装されているはずですので試してみます。

50 名前:デフォルトの名無しさん (ワッチョイ 3bba-Mt2S) mailto:sage [2017/03/03(金) 23:17:40.37 ID:Jp23eHYS0.net]
やったぜ……解決しました(白目

*** Error 71 "main.c" Line 852(1,2): Out of ROM, A segment or the program is too large MAIN
Seg 00800-00FFF, 0580 left, need 009D0
Seg 01000-017FF, 0800 left, need 009D0
Seg 01800-01FFF, 0800 left, need 009D0
Seg 00000-00002, 0000 left, need 009D0 Reserved
Seg 00003-007FF, 0001 left, need 009D0

解決しました……orz



51 名前:デフォルトの名無しさん (アウアウオー Sabf-aPLm) [2017/03/04(土) 00:14:41.41 ID:U0LEsPrza.net]
今度仕事で「Linux C」なる言語を使うらしのですが普通のC言語と
どう違うのでしょうか?

52 名前:デフォルトの名無しさん (ワッチョイ 0f7b-liqg) mailto:sage [2017/03/04(土) 00:23:43.29 ID:l5kdYc5I0.net]
構造体初期化時のデフォルト値などを、簡単に記述できるように、C言語を拡張している

便利な記述が幾つかある。
見たことない書き方があれば、拡張記法

53 名前:デフォルトの名無しさん (アウアウオー Sabf-aPLm) mailto:sage [2017/03/04(土) 00:28:42.38 ID:U0LEsPrza.net]
>>52
ありがとうございます。Linux独自拡張がなされているのですね。
自分で調べてみます。
ちょっとびびってます。

54 名前:デフォルトの名無しさん (ワッチョイ 1f17-NqFr) mailto:sage [2017/03/04(土) 03:03:47.82 ID:azJYKT3F0.net]
Linux拡張っていうかgcc拡張って言うよな普通は

55 名前:デフォルトの名無しさん (アウアウカー Sa6f-k9EO) mailto:sage [2017/03/04(土) 05:24:58.37 ID:QZk9D4JAa.net]
linux cって言われたら、そこそこposix準拠してるとかが本題じゃないの?
コンパイラの話とは思わないわ

56 名前:デフォルトの名無しさん (ワッチョイ 0f7b-liqg) mailto:sage [2017/03/04(土) 07:11:38.33 ID:l5kdYc5I0.net]
Linux プログラミング・インタフェース、2012

manの著者が書いた、神の書!

この本の翻訳本が出版されたのは、日本だけじゃないか?
翻訳者の千住治郎が、技術指導もしている

57 名前:デフォルトの名無しさん (ワッチョイ 1f9f-uWtv) mailto:sage [2017/03/04(土) 16:43:54.18 ID:VFtHImK30.net]
> 「Linux C」なる言語

初耳だったので思わずググったがそんなの無かった

58 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/04(土) 17:16:50.40 ID:40RMudYn0.net]
>>52
>構造体初期化時のデフォルト値などを、簡単に記述できるように、C言語を拡張している
これ、なんだよ
designated initializerならC99の標準機能だぞ

59 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/04(土) 18:25:01.39 ID:a1Qd0ocB0.net]
C99対応がものすごい遅かったMSVCが標準だと思い込んでる人なんじゃない?たまに居るよ

60 名前:デフォルトの名無しさん (ワッチョイ eb6f-KW4d) mailto:sage [2017/03/04(土) 18:49:55.83 ID:Zd7SxADN0.net]
linux cってgccのことなの?いくらなんでもgccはgccと言うんじゃ…



61 名前:デフォルトの名無しさん (ワッチョイ 8b42-NqFr) mailto:sage [2017/03/04(土) 19:00:06.09 ID:BXXAQhND0.net]
多分、単にLinux上で動かせるCコンパイラってことだと

62 名前:デフォルトの名無しさん (ワッチョイ 1f90-x83U) mailto:sage [2017/03/04(土) 19:46:34.97 ID:afa8PN5D0.net]
俺の予想ではapiが違うってだけのこと

63 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/04(土) 20:35:51.73 ID:40RMudYn0.net]
ID:l5kdYc5I0がうんこだと言う事以外は謎のまま
翻訳本が必要な事を恥じろ

64 名前:デフォルトの名無しさん (アウアウカー Sa6f-k9EO) [2017/03/04(土) 21:34:53.05 ID:CpamcytIa.net]
>>58
指示付きの初期化子と同機能で文法の違うgcc拡張は一応ある
古い拡張だし今では使う必要ないないけど、機能自体は残ってる

65 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/04(土) 21:49:55.63 ID:40RMudYn0.net]
An alternative syntax for this that has been obsolete since GCC 2.5 but GCC still accepts is to write ‘[index]’ before the element value, with no ‘=’.
int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
struct point p = { y: yvalue, x: xvalue };
こいつらの事?

66 名前:デフォルトの名無しさん (ワッチョイ 0f7b-liqg) mailto:sage [2017/03/05(日) 00:28:44.10 ID:WMRVohp00.net]
GNU拡張

条件演算子(三項演算子とも)である ? : の書式は、
operand1 ? operand2 : operand3

ですが、このうち第2オペランドを省略すると、第1オペランドの値が真の場合、式の値は第1オペランドの値になる…というのがありまして

operand1 ? : operand3

67 名前:66 (ワッチョイ 0f7b-liqg) mailto:sage [2017/03/05(日) 00:43:46.49 ID:WMRVohp00.net]
KotlinでNullチェックする、エルビス演算子、?:
横から見れば、エルビス・プレスリーの顔に見える

変数 ?: デフォルト値
変数 ?: エラー処理

変数がnullなら、後ろを処理する。
変数がnull以外 → 何もしない

68 名前:デフォルトの名無しさん (ワッチョイ 3b51-BJNc) mailto:sage [2017/03/05(日) 19:59:38.94 ID:FXcRiqza0.net]
>>59
CはANSI-Cで完成しているからな。C99以降の仕様でどうしても必要なものなんてlong longくらい。

69 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/05(日) 20:06:24.91 ID:hQyyoOdR0.net]
こういう老害死なねーかな
死んでくれ とっとた

70 名前:デフォルトの名無しさん (ワッチョイ 6bd4-e336) mailto:sage [2017/03/05(日) 22:15:18.97 ID:VTxP7/2w0.net]
まあ、C99以降については、レガシーなコンパイラの下位互換性を削ることになっても
仕様を変える必要性があったのか? という気はしないでもない。



71 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/05(日) 22:35:20.65 ID:qOQ2PN1U0.net]
Cはもうそのままでいい気がしなくもない。
C11なんか誰が使ってんの?って感じだし。

72 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/05(日) 22:39:34.38 ID:Z7K8qPrE0.net]
むしろC99の方がうんこだよ,C89 で十分なのに意味不明な拡張をしたC99 or later は葬りさられるべき
>>68
long long を準備するくらいなら, sizeof(int) == 8 の処理系をさっさとつくるべき

73 名前:デフォルトの名無しさん (ワッチョイ cb3c-NqFr) mailto:sage [2017/03/05(日) 22:39:39.21 ID:pZffxBVA0.net]
でもgets廃止はもっと早くやるべきだった
使う側の問題ではあるが

74 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/05(日) 22:46:24.51 ID:hQyyoOdR0.net]
externの使い方知らない素人は引っ込んでろ

75 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/05(日) 22:54:05.78 ID:Z7K8qPrE0.net]
>>74
ライブラリ(の中で静的変数を確保するようなコード)でも書かない限り extern は不要

76 名前:デフォルトの名無しさん (ワッチョイ cb3c-NqFr) mailto:sage [2017/03/05(日) 22:57:48.43 ID:pZffxBVA0.net]
externはincludeで正直訳が分からなくなった

77 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/05(日) 23:00:05.85 ID:Z7K8qPrE0.net]
>>76
そんなときのための tentative definition

78 名前:デフォルトの名無しさん (ワッチョイ 8b42-NqFr) mailto:sage [2017/03/05(日) 23:21:29.99 ID:1JomNGIg0.net]
あんまりいじり回さないで欲しいね

79 名前:デフォルトの名無しさん (ワッチョイ 1f17-NqFr) mailto:sage [2017/03/06(月) 01:17:27.44 ID:2/63ad4Z0.net]
むしろレガシーコードをとっととC11に改変すべき最低でもC99

80 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 01:33:56.85 ID:k6KUwGnB0.net]
C11のThreadとかは良いけど実装してるコンパイラ知らない
Genericはゴミ
他は…あれば便利だけど特定のコンパイラでビルド出来なくなるデメリットに目を瞑ってまで使いたいとは思えない



81 名前:デフォルトの名無しさん (ワッチョイ 1fe5-kMYg) [2017/03/06(月) 02:40:03.27 ID:i/MU6nkw0.net]
kill関数ってwindows上だと機能しないんですか?
メモ帳のpidを1111として

kill(1111,SIGTERM);

としてもタスクキルされないのですが

82 名前:デフォルトの名無しさん (ワッチョイ 6bd4-e336) mailto:sage [2017/03/06(月) 03:20:51.34 ID:NUOafv2T0.net]
Windowsの場合、APIを直接呼び出した方がトラブルが少ない(かも
support.microsoft.com/ja-jp/help/409542

83 名前:デフォルトの名無しさん (ドコグロ MMbf-Y1yA) mailto:sage [2017/03/06(月) 07:23:55.49 ID:HrLL0BzwM.net]
そもそも既定だと SIGTERM で終了しないだろ

84 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/06(月) 07:44:56.29 ID:c2C1QaOD0.net]
いまどきCなんて使えても何の役にも立ちませんが。。

85 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 08:00:30.96 ID:0PrPfpk/0.net]
>>75
未だに理解してないようだな
グローバル変数を使う時に必要

86 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/06(月) 10:51:45.16 ID:DwMqYVii0.net]
>>72
だよな
何でもかんでもゴテゴテつけるのは
ないなら作れというCの思想に反する

87 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 11:39:16.77 ID:0PrPfpk/0.net]
ブロック先頭以外での変数定義
designated initializer
flexible array member
compound literal
snprintf

ついてこれないジジイが使わないのは勝手だが
懐古オナニーはジジイ仲間で見せあうだけにしておけ

88 名前:デフォルトの名無しさん (ドコグロ MMef-TqyC) mailto:sage [2017/03/06(月) 12:12:38.80 ID:k/FbYHjZM.net]
ブロック先頭で全変数が定義されてるとどこで使ってるのか分かりにくいよね。

ところで、一時的に使った変数を「これ以降使わないよ」って宣言できないかな?
undef みたいな感じで。

89 名前:デフォルトの名無しさん (ワッチョイ 0f4f-2BvX) mailto:sage [2017/03/06(月) 12:17:05.41 ID:GI3nM20k0.net]
{ } で囲ってスコープ作れば多少コントロールしてる気分になる

90 名前:デフォルトの名無しさん (ドコグロ MM6f-KW4d) mailto:sage [2017/03/06(月) 13:09:58.99 ID:L9fnRYGMM.net]
>>88
ブロック先頭で定義する方が使ってる変数が一目で分かっていいよ。
あとちゃんと設計されてる感がある



91 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/06(月) 14:04:54.74 ID:turPSodzM.net]
>>84
世の中の下位レイヤのほとんどのコードがC/C++
むしろほとんどのプラットフォームで未だに活躍中なんだがな
それを知らないって本当にPGか疑わしい

92 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/06(月) 15:06:33.42 ID:c2C1QaOD0.net]
Cなんてもはや一部の組み込みでジジイが組んでるくらいだろ
C++もC#かJavaに置き換わってるよ
世の中の流れから取り残されたジジイは黙ってろよwww

93 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 15:18:24.25 ID:k6KUwGnB0.net]
そのC#やJavaのVMがCやC++無しで実装できてないんだけど?

94 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/06(月) 15:27:27.06 ID:wVaOk6lpM.net]
マジで言ってるみたいでビビるわ
そのVMがプラットフォーム無しで動いてるとでも?
VMも所詮プラットフォーム上で動くただの上位レイヤのアプリでしかないだがね
そんなに言うならプラットフォーム自身をそのC#やらJavaで作ってみたらいい
取り残されているのは上位レイヤしか触れない連中だよ
まずそれを自覚した方がいいマジで

95 名前:デフォルトの名無しさん (ワッチョイ 0f4f-2BvX) mailto:sage [2017/03/06(月) 15:32:50.40 ID:GI3nM20k0.net]
C# やら Java のコンパイラを作るC# やら Java のコードってあるの?

96 名前:デフォルトの名無しさん (ワッチョイ 5b4e-xEld) [2017/03/06(月) 15:32:55.63 ID:B+jhZQKr0.net]
つうかね、異なるレイヤを一緒に語るもんではないw

97 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/06(月) 15:39:25.17 ID:c2C1QaOD0.net]
なんでも一から作らなきゃいけないと思ってるバカ
C言語なんかでやってたら今主流のソフトなんて一生かかっても完成しない
C言語しか知らないバカ

98 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/06(月) 15:41:41.99 ID:c2C1QaOD0.net]
お前のそのC言語のソフト全部アセンブリで組んでみろよ



って言ってるのと同じくらいアホらしい意見でしかない

99 名前:デフォルトの名無しさん (ワッチョイ 1f3c-LOQs) mailto:sage [2017/03/06(月) 15:42:54.06 ID:lmlH3P4+0.net]
若いな。
少し前の自分を見てるみたいで微笑ましい。

100 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 15:45:11.54 ID:k6KUwGnB0.net]
少し前のお前こんなバカだったの?



101 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/06(月) 16:15:36.45 ID:26MVvIlFM.net]
文盲しかいないな
誰も1からCで作れなんて言ってないじゃん
これだから馬鹿は困る

102 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 16:49:28.72 ID:0PrPfpk/0.net]
>>90
低レベルすぎる
使い捨てるループ変数を先頭で定義することが「ちゃんと設計」

constで済む変数もconstに出来なかったり
あっ、お爺ちゃんはconstなんて知らないか

103 名前:デフォルトの名無しさん (アウアウウー Sa2f-BQ+s) mailto:sage [2017/03/06(月) 17:01:10.73 ID:wb/Uuzufa.net]
つかアセンブリも必要だし…なぜ用途の違いで割り切れないのか

104 名前:デフォルトの名無しさん (ワッチョイ 5b4e-xJij) mailto:sage [2017/03/06(月) 17:06:52.49 ID:B+jhZQKr0.net]
揺るぎない安定感、着実な一歩。

105 名前:デフォルトの名無しさん (ワッチョイ 4fc9-BJNc) mailto:sage [2017/03/06(月) 17:16:44.41 ID:Sa3Mqufl0.net]
>>102
ループ変数ってまさにブロックの先頭で宣言するよね

106 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/06(月) 18:00:32.13 ID:aYtCVo5YM.net]
>>102
C言語にもconstあるよ
知らなかった?
これでまた1つ勉強になって良かったね

107 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 18:18:39.71 ID:k6KUwGnB0.net]
>>106
最後の煽りはともかくそういう意味じゃないでしょ。
途中で宣言出来ないとconstに出来ないものもあるって話だと思う。
例えばこういうの

a_init(a);
const int c=f(a);

108 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 18:24:17.23 ID:0PrPfpk/0.net]
>>105
しねーよ

109 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 18:25:49.45 ID:0PrPfpk/0.net]
>>106
頭悪りーな

110 名前:デフォルトの名無しさん (ブーイモ MM3f-R7fB) mailto:sage [2017/03/06(月) 18:42:01.64 ID:X6GSlxMnM.net]
for初期化時の変数宣言は確かに無いと困るね
態々ブロックで包むのもだるいし



111 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/06(月) 19:31:24.39 ID:CMFZE9+kM.net]
>>107
それ出来るけど
C99かC11で

112 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 19:39:13.31 ID:k6KUwGnB0.net]
>>111
だーかーらーC88で十分でブロックの先頭だけで宣言出来ればいいって言ってる奴に対して言ってるんだっての…
他人の発言を代わりに説明してあげてる俺バカみたいだからこれ以上ツッコミあっても答えねえよ

113 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 19:41:23.20 ID:0PrPfpk/0.net]
>>111
本当に頭悪い

114 名前:デフォルトの名無しさん (ドコグロ MM2f-Y1yA) mailto:sage [2017/03/06(月) 19:45:49.72 ID:qEORy0cSM.net]
>>95
あるかどうかは知らんけど普通に作れるでしょ
テキスト読んでバイナリ吐ければいいのでモダンな言語ならできない言語の方が珍しいかと

115 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/06(月) 20:30:36.37 ID:M+lJg41m0.net]
>>85
単なるグローバル変数をつかうのならば,tentative definition で十分

116 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/06(月) 20:31:42.36 ID:M+lJg41m0.net]
>>88
そういうときには { } で小分けにすればいいだけ
というか,やたらめったらに変数を量産するからそんな目にあう

117 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/06(月) 20:33:01.44 ID:M+lJg41m0.net]
>>95
Javaコンパイラ,C#コンパイラを名乗るのだったら,自分自身をコンパイルできなければだめだね

118 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/06(月) 20:34:27.16 ID:M+lJg41m0.net]
>>112
C89 だよ,いちど文法を調べてみなよ,必要十分とはまさにこのこと

119 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 21:11:28.16 ID:0PrPfpk/0.net]
>>115
まだ理解してないのかバカが1匹

120 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/06(月) 22:21:37.05 ID:c2C1QaOD0.net]
バカバカ言ってるおっさん
C言語しか分からない時代遅れの上に知恵遅れだなw



121 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/06(月) 22:38:00.23 ID:k6KUwGnB0.net]
>>120
なんでC言語しか分からないって事がお前に解るの?

122 名前:デフォルトの名無しさん (ワンミングク MM3f-swil) mailto:sage [2017/03/06(月) 22:58:16.40 ID:HD9d9iiPM.net]
天啓が下ったぁ

123 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/06(月) 23:52:25.88 ID:0PrPfpk/0.net]
>>120
CLRやJavaVMの記述言語がわからないド底辺か

124 名前:デフォルトの名無しさん (ワッチョイ 8b42-NqFr) mailto:sage [2017/03/06(月) 23:53:15.16 ID:1xt4bVO70.net]
2chを10年くらいやり続けると、
しっぽが9本生えてきて、
透視能力も身につくらしい

125 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/07(火) 00:00:35.92 ID:O3agX0W90.net]
C言語なんて安い仕事しか出来ないものにしがみついてるバカだから
当然C言語しか出来ないに決まっているw
これがバカでなきゃ何なんだよwww

126 名前:デフォルトの名無しさん (ワッチョイ 1f17-NqFr) mailto:sage [2017/03/07(火) 00:26:11.17 ID:54fjNwR80.net]
C/C++, Java, C#, VB, VB.Net, Ruby, Python出来るよ
Cが出来れば他の言語は比較的かんたんに覚えられる

127 名前:デフォルトの名無しさん (ワッチョイ dbfd-2BvX) mailto:sage [2017/03/07(火) 07:44:28.92 ID:t7Ngew/R0.net]
宗教家が発狂中!

128 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/07(火) 09:22:52.75 ID:O/JMqbZP0.net]
>>125
へー、おまえ安い仕事にしかありつけないのか
低スキルですって自己紹介しなくていいのにw

129 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/07(火) 10:06:01.46 ID:iKWZ1BlO0.net]
>>125
非正規はそう言う状態なのか? そりゃかわいそう

130 名前:デフォルトの名無しさん (ワッチョイ 1bdc-ZIZW) mailto:sage [2017/03/07(火) 11:36:26.32 ID:Op3K+dMb0.net]
賃金やら契約条件やらの話はプログラマー板の方じゃないかえ?
良く知らないけど。



131 名前:デフォルトの名無しさん (ワッチョイ 9fe1-LFAQ) mailto:sage [2017/03/07(火) 12:58:47.82 ID:7YWE/8fn0.net]
>>95
Javaは知らんけど、C#のコンパイラはC#製

132 名前:デフォルトの名無しさん (ワッチョイ ab85-GPt5) mailto:sage [2017/03/07(火) 17:58:00.93 ID:sN5zB8qN0.net]
>>131
それは感心なこころがけだ

133 名前:デフォルトの名無しさん (ワッチョイ 8b7b-ERAc) [2017/03/07(火) 18:06:57.58 ID:MCZ/J11a0.net]
>>131
CLRは3割がC++だけどな

134 名前: ◆QZaw55cn4c (ワッチョイ ab85-GPt5) mailto:sage [2017/03/07(火) 18:25:09.22 ID:sN5zB8qN0.net]
>>87
老人のために翻訳してあげるよ

designated initializer 指示つきの初期化子 struct S { int a; int b; } Obj = { .a = 12, .b = 34 };
flexible array member 最後のメンバーが不定長構造体、でもこの技は昔から、たとえば C FAQ でもすでに言及されているよね
compound literal 複合リテラル 無名の一時オブジェクトを構文で作ることができるやつ、関数の引数で無名で T の一時変数をつくりたいときに (T){.a = 12, .b = 34} と一時変数をつくれる
snprintf シグナチャーは int snprintf(char *s, int n, const char *format) ようは sprintf() のセキュリティ強化版

初期化子がらみについて文句をいうとすれば、どうせ拡張するんだったら C++11 later に完全にあわせてほしかったね…

135 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/07(火) 20:20:26.79 ID:iKWZ1BlO0.net]
>>134
ウソを混ぜて翻訳しなくて良い

ついてこれないんだろ
ジジイは老人会に引っ込んでろ

136 名前:デフォルトの名無しさん (ワッチョイ ef13-QIj4) mailto:sage [2017/03/07(火) 20:43:36.34 ID:C5UF9tvt0.net]
>>135
どこが嘘だというのか?
具体的に指摘できないのか?

137 名前:デフォルトの名無しさん (ワッチョイ eb6f-KW4d) mailto:sage [2017/03/07(火) 20:49:41.64 ID:l+KB4C7U0.net]
ゆとりvsジジイ

138 名前:デフォルトの名無しさん (ワッチョイ ef13-QIj4) mailto:sage [2017/03/07(火) 20:54:39.52 ID:C5UF9tvt0.net]
https://www.youtube.com/watch?v=Y_oD0ZWfWz4
頭のいい人は,しゃべるときも明晰な論理を貫徹するね

139 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/07(火) 21:08:01.87 ID:iKWZ1BlO0.net]
未だ炎上学習法実践してんか、特別に教えてやるよ
> flexible array member 最後のメンバーが不定長構造体、でもこの技は昔から、たとえば C FAQ でもすでに言及されているよね

140 名前:デフォルトの名無しさん (ワッチョイ 1f5b-wJyW) [2017/03/07(火) 21:17:17.06 ID:dyD8NGJK0.net]
みんな相手にするんじゃないぞ。
ちょっと頭がアレなやつなんだからよ。



141 名前:デフォルトの名無しさん (ワッチョイ 0f31-3D2C) [2017/03/07(火) 21:54:59.55 ID:9V/NxRrg0.net]
この煽りは上級者だな(煽り上級者の資格は何処で取れるんだ?)

問題はC言語で何を作るか何だけど?
やっぱり、ある程度は作るモノは決まってたりするの?

142 名前:デフォルトの名無しさん (ワンミングク MM3f-swil) mailto:sage [2017/03/07(火) 22:13:28.75 ID:jqZP77OvM.net]
FPGAに書き込んでるよ

143 名前:デフォルトの名無しさん (ドコグロ MM6f-TqyC) mailto:sage [2017/03/07(火) 22:36:56.12 ID:cCh6hZTkM.net]
FPGAに実装した8051で実行。

144 名前:デフォルトの名無しさん (ワッチョイ ef81-fLnF) mailto:sage [2017/03/08(水) 05:32:52.19 ID:fg5w6sCm0.net]
もはやC言語の仕事なんてない
廃棄寸前の過去の組み込み機器のメンテとか?
今ならJavaか少なくともせいぜいC++だろうよ
C++もJavaかC#におきかわりつつあるし
C++も出来ない50歳くらいのジジイプログラマってたまにいるけど
だいたいブラック派遣で年収も300万くらいらしいわw
もう死ねよwww

145 名前:デフォルトの名無しさん (ワッチョイ 8b7b-mDf3) mailto:sage [2017/03/08(水) 05:55:29.49 ID:7Auc+YVy0.net]
最近だと組み込みLinuxならC++ではなくてPythonかな

146 名前: ◆QZaw55cn4c (ワッチョイ ef13-QIj4) mailto:sage [2017/03/08(水) 07:36:40.41 ID:3IqnA1f/0.net]
>>139
ちょっと言葉が足りなかったね
flexible array member 最後のメンバーが不定長配列(a[0]とか),結果として全体が不定長構造体,
でもやっぱりこの技は昔から C FAQ でも言及されてるんだよな‥C89 では a[0] とかけないので,a[1] にしているよ

147 名前:デフォルトの名無しさん (アウアウカー Sa6f-/hOr) mailto:sage [2017/03/08(水) 08:23:34.70 ID:Wr2kD9p+a.net]
プログラムをろくに書けない奴に限って古い、新しいで騙る

プログラマは仕事によるレイヤーで語る

148 名前:デフォルトの名無しさん (アウアウカー Sa6f-k9EO) [2017/03/08(水) 08:50:28.85 ID:ZrUr+Lkoa.net]
>>146
要素数0じゃなくて、要素数の省略だろ
というか、要素数に0を指定するのって未定義じゃなかったっけ

149 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/08(水) 09:43:12.83 ID:tKO0gCMl0.net]
>>146
30点
ジジイは無理について来ようとしなくて良い

150 名前: ◆QZaw55cn4c (ワッチョイ ab85-GPt5) mailto:sage [2017/03/08(水) 12:35:59.22 ID:/EX97NIO0.net]
>>148
そうか、要素数を0とできたのは gcc 拡張だったかもしれないね

>>149
この手のものは昔からある手法だよ、バンバンつかっていたよね、
別に flexible array membe と名前がつかなくても問題ないよね
www.kouno.jp/home/c_faq/c2.html#6

C99 で追いついたとおもっている若者はお前かね?



151 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/08(水) 15:00:08.45 ID:DNe+Lf9O0.net]
a[1]で書けてたのにa[0]ができるようになったからって
それは気分の問題で本質的には何も変わってないんだよ
ヤダジタするガキにくれてやるおしゃぶりという意味で_Boolと同じだ

152 名前:デフォルトの名無しさん (ワッチョイ 0f4f-2BvX) mailto:sage [2017/03/08(水) 15:45:17.33 ID:Ms4iQyEm0.net]
sizeof とったときに 末尾可変実現箇所の部分の大きさが含まれるかどうか

153 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/08(水) 15:57:06.21 ID:tKO0gCMl0.net]
>>150
30点 的外れな戯言並べても採点は変わらない
ジジイは無理すんな w

154 名前: ◆QZaw55cn4c (ワッチョイ ab85-GPt5) mailto:sage [2017/03/08(水) 18:00:32.85 ID:/EX97NIO0.net]
>>151
そうだよね
C99 は全般的にいって今更感がぬぐえない

>>152
わかるが、サイズが1変わるかどうかなんて、どうでもいい問題に思っていた

155 名前:デフォルトの名無しさん (ワッチョイ 9fe1-LFAQ) mailto:sage [2017/03/08(水) 18:38:53.79 ID:ERQkfdVq0.net]
C99は今更なんじゃなくて、やっと現実に近づいたというところでしょ
コンパイラ拡張に依存したり、わかりにくいマクロが減らせる

156 名前:デフォルトの名無しさん (ワッチョイ ab85-GPt5) mailto:sage [2017/03/08(水) 18:45:04.00 ID:/EX97NIO0.net]
>>155
いやね、C89 で十分という気がして仕方がない
仮に C89 処理系を作っていたとして、それを C99 に適合させる気力が湧くか、考えてみるけれどもたぶんやる気がでないだろう
あの alloca() の改変である実行時領域確保配列なんかは筋悪にしかみえない、たしか C11 とか C++ ではオプションになったとか、それもよくわかる

157 名前:デフォルトの名無しさん (ワッチョイ 6b3c-BJNc) mailto:sage [2017/03/08(水) 18:57:25.94 ID:YeRun3zZ0.net]
>>154
たかが1要素 されど1要素

その要素が 1バイトかもしれないし 1ページかもしれないw

158 名前:デフォルトの名無しさん (ドコグロ MM2f-Y1yA) mailto:sage [2017/03/08(水) 19:53:45.80 ID:N8HM6lINM.net]
>>154
> わかるが、サイズが1変わるかどうかなんて、どうでもいい問題に思っていた
こういう奴は信用できない

159 名前:デフォルトの名無しさん (ワッチョイ 5b4e-xEld) [2017/03/08(水) 20:38:19.19 ID:59T19xUI0.net]
VLAって筋悪か?

160 名前:デフォルトの名無しさん (ワッチョイ bb4e-CqFM) [2017/03/08(水) 20:58:52.57 ID:muMKoRUn0.net]
>>159
正直使いどころがわからん。



161 名前:デフォルトの名無しさん (ワッチョイ 0ba1-c3r2) mailto:sage [2017/03/08(水) 21:05:16.11 ID:nYBrtmF60.net]
組込分野はC89に対応してるならまだマシな部類じゃね
そうじゃないなら単にやる気の問題だろうけど

162 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/08(水) 21:12:01.33 ID:tKO0gCMl0.net]
>>160
ループの中で繰り返し毎に異なるサイズ確保する場合に重宝する
allocaの改変とか言ってるついてこれないジジイは無視しておけ

163 名前:デフォルトの名無しさん (ワッチョイ 0f24-T7IB) [2017/03/08(水) 21:56:56.05 ID:DNe+Lf9O0.net]
>>152
で? a[1]で書けてたときに問題になってたか?

164 名前:デフォルトの名無しさん (ワッチョイ ab7b-8nUV) mailto:sage [2017/03/08(水) 22:09:34.99 ID:tKO0gCMl0.net]
>>163
a[1]では問題があった、flexible array memberで無くなった

165 名前:デフォルトの名無しさん (フリッテル MM7f-8aD0) mailto:sage [2017/03/08(水) 22:45:59.22 ID:sHqr9nhTM.net]
最低でもC99は必須
俺的には少なくともstdint.hは必須

166 名前:デフォルトの名無しさん (ワッチョイ 3b51-BJNc) mailto:sage [2017/03/08(水) 23:12:32.85 ID:oksZ54sT0.net]
まぁ標準化されたのはいいけど、みんなそれ以前から自前で用意してたよね。

167 名前:デフォルトの名無しさん (ワッチョイ 0ba1-c3r2) mailto:sage [2017/03/08(水) 23:15:10.17 ID:nYBrtmF60.net]
まあ移植性は重要だよな

168 名前:デフォルトの名無しさん (アウアウカー Sa6f-k9EO) [2017/03/08(水) 23:19:37.95 ID:kUhBpeLWa.net]
>>166
してるけど、64bit環境とか考慮できてない腐ったコードもあるからな

flexible array memberなんかも末尾配列の要素数に0とか1指定でそれっぽいことはできていたけど、未定義を踏まざるを得なかった
それが規格に則って書けるようになるってのは良いことだと思うけどな

169 名前:デフォルトの名無しさん (ワッチョイ 3b51-BJNc) mailto:sage [2017/03/08(水) 23:25:57.49 ID:oksZ54sT0.net]
規格として移植性が良くなるのは正解なんだけど、使う側からすると、新しい規格が
十分に普及するまでは逆に移植性が悪くなるというジレンマ。

170 名前:デフォルトの名無しさん (ワッチョイ eb6f-KW4d) mailto:sage [2017/03/08(水) 23:27:52.41 ID:jyzNIqf90.net]
C89で基本は完成されたね。
どうしてもC99でないと困るってことはないけど
//コメントとかinttypes.hはよく使うから、あれば便利



171 名前:デフォルトの名無しさん (ワッチョイ bb4e-CqFM) [2017/03/08(水) 23:29:36.18 ID:muMKoRUn0.net]
>>162
その意味がわからないんだけど…
最大値を気にせず確保することなんてありえるの?

172 名前:デフォルトの名無しさん (ワッチョイ 134e-ATAZ) [2017/03/09(木) 01:29:12.80 ID:3g6CLylS0.net]
実行時に配列のサイズが決まるわけよ。
例えば引数によってとか。

173 名前:デフォルトの名無しさん (ワッチョイ fb4e-HNYZ) [2017/03/09(木) 02:11:21.55 ID:Kb3gKMEf0.net]
いや、だから、最大値を決めておかないのか?って事を突っ込んでいるのだが…
しかも外部入力でリミット切らないとか、セキュリティホールの典型じゃね?
で、最大値決めるって事は、可変にする必要がないって事だと思うんだが…

174 名前:デフォルトの名無しさん (ワッチョイ 134e-ATAZ) [2017/03/09(木) 06:20:42.92 ID:3g6CLylS0.net]
つうかVLAって要素数に変数を使えることが大きいんじゃないかな
int size = a / b;
int array[size] = {0}; 
sizeは実行時に決まるが問題の無い範囲であるのが保証できる場合、
計算結果であるsizeを再利用できるのでパフォーマンスがいい

175 名前:デフォルトの名無しさん (ドコグロ MM92-ezmg) mailto:sage [2017/03/09(木) 06:38:53.59 ID:K/l9Si6sM.net]
>>173
常に最大値で配列切っとけってこと?
いやそうしたけりゃお前はそうすればいいと思うよ

176 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/09(木) 07:10:53.29 ID:hGM1T24/0.net]
>>175
VLA はセキュリティの穴になりうるね,実行時の値で配列の上限が決まるなんて危険な発想ではないかい?
そんなものを標準に入れていいのか?

>>174
配列の要素数がパフォーマンスに関係することなんかないんでないかい?

177 名前:デフォルトの名無しさん (ドコグロ MM92-ezmg) mailto:sage [2017/03/09(木) 07:44:22.47 ID:K/l9Si6sM.net]
>>176
(バカが使えば)
> VLA はセキュリティの穴になりうる

VLA に限った話じゃないけどね

178 名前:デフォルトの名無しさん (ブーイモ MM92-busz) mailto:sage [2017/03/09(木) 08:08:41.65 ID:dsGfio+6M.net]
VLAそのものがセキュリティホールになる理由がわからん
外部入力でサイズが決まるとしても起こりうるのは
スタックオーバーフローくらいのもんだろ
そんなのは再帰が深くなりすぎても起こる
たとえmallocに変えたところで問題がスタックからヒープに移るだけ

179 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/09(木) 08:08:57.49 ID:F9CUJ5lt0.net]
if(size <100){
int array[size] = {0};
}
解決策考えたよ

180 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 08:29:50.20 ID:QUckDsXy0.net]
>>173
何言ってんだバカ
VLAのサイズと最大値は全く独立だ

お前の心配するセキュリティホールの実例出してみろよ
笑ってやるから



181 名前:デフォルトの名無しさん (ワッチョイ fb4e-HNYZ) [2017/03/09(木) 08:59:36.08 ID:Kb3gKMEf0.net]
>>180
google で
「スタックオーバーフロー セキュリティ」
を検索して最初に表示されるページを読んでから反応しなよ…

182 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/09(木) 09:08:20.35 ID:F9CUJ5lt0.net]
>>181
そのサイト凄いな、時間計って読んでみたらちょうど5分で読み終わった。

183 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 09:14:10.67 ID:QUckDsXy0.net]
>>181
とっとと、実例を出せよ
笑ってやるから

スタックオーバーフローのメカニズムわかってないだろ w

184 名前:デフォルトの名無しさん (ワッチョイ 364f-aizu) mailto:sage [2017/03/09(木) 09:31:48.50 ID:iRW4jXC40.net]
外部から悪意あるコードを突っ込んでそのコードにジャンプさせうることが
VLAの機構の中にリスクが内在してて可能になっちゃうということ?

185 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/09(木) 09:50:34.19 ID:F9CUJ5lt0.net]
int array[size] ; で。
sizeをリターンアドレスの一個前にもってくるようにして
次に都合よくgetsが出てくるから、そこでジャンプ後のアドレス+
悪意あるコードを入力すると関数から戻ったとき悪意あるコードが
実行されるってことを言いたいんだろ

186 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 10:00:19.43 ID:QUckDsXy0.net]
>>176
>VLA はセキュリティの穴になりうるね,実行時の値で配列の上限が決まるなんて危険な発想ではないかい?
>そんなものを標準に入れていいのか?
snprintf不要と言ってるジジイの発言らしくないな

187 名前:デフォルトの名無しさん (ワッチョイ e6c9-2hGO) mailto:sage [2017/03/09(木) 11:39:27.23 ID:LxMtt/hf0.net]
ラン・オーバー・ラン

188 名前:デフォルトの名無しさん (ワッチョイ 364f-aizu) mailto:sage [2017/03/09(木) 11:46:44.45 ID:iRW4jXC40.net]
Run "CINDY" Run

189 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 12:19:27.12 ID:9nAslxZ/0.net]
C99にわかはこれだから困る

>>180
>VLAのサイズと最大値は全く独立だ

では聞くが、VLA はどこに確保されるの?スタックなの?ヒープなの?

190 名前:デフォルトの名無しさん (ワッチョイ 134e-ATAZ) [2017/03/09(木) 14:10:16.74 ID:3g6CLylS0.net]
>>176
パフォーマンスに影響する(場合がある)のは、要素数じゃなく式の値(a / b)の再利用



191 名前:デフォルトの名無しさん (ワッチョイ 134e-ATAZ) [2017/03/09(木) 14:17:05.30 ID:3g6CLylS0.net]
まあ最大値で確保すれば解決する、というかVLA未サポートならそうするわけだけど、
VLAが使えるなら使っちゃうなあ

192 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 15:18:40.35 ID:QUckDsXy0.net]
>>189
ついてこれないジジイは無理すんな
スタック領域を1000000以上拡張出来ないと仮定して

int a[1000000];

int l = 1000000;
...
int a[l];

どちらも拡張失敗するのは実行時
VLAだから失敗するわけじゃない

snprintfに関しての言い訳はしないのか?

193 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 18:29:43.99 ID:9nAslxZ/0.net]
>>192
質問を繰り返そう
VLA はどこに確保されるの?スタックなの?ヒープなの?はっきりさせてよ

>snprintf
安全だからありがたく使わせていただきますけれども、C99 の目玉ってわけでもないかと

194 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 18:33:38.26 ID:9nAslxZ/0.net]
>>191
そうなんだ…
新しいものを避けるのは、私ももう老人ってことかもね
alloca() をバンバン使ってる口だから(alloca() は実装されてない系もある)、そこんところの実装がはっきりしてるんだったら使ってもいいかな

195 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 18:44:49.43 ID:9nAslxZ/0.net]
>>168
なるほどね、規格になった、てことで意味があるんだね
flexible array member も VLA も昔からある作法だし、C89 で十分だ、って頑なに思っていたけれども考え直してもいいかもね

196 名前:デフォルトの名無しさん (ドコグロ MM27-ezmg) mailto:sage [2017/03/09(木) 18:47:48.68 ID:LA1Z4pgPM.net]
>>191
最大値の大きさによるけどでかいなら俺はヒープにとる

197 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 18:57:57.10 ID:QUckDsXy0.net]
>>193
>>192で回答済みだが、ジジイは分からないようだから答えてやろう
固定長アレイが確保されるのと同じ領域
大部分の実装ではスタック

で、それが何か?

198 名前:デフォルトの名無しさん (JP 0H1f-busz) mailto:sage [2017/03/09(木) 18:58:32.59 ID:9TBsKkVvH.net]
>>193
どこに確保されるかわかると嬉しいことでもあるの?
実際、どこに確保されるかは決まっていない

199 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 18:59:10.03 ID:QUckDsXy0.net]
>>195
>flexible array member も VLA も昔からある作法だし、
ねーよ、ジジイ

200 名前:デフォルトの名無しさん (ブーイモ MM2b-9hUc) mailto:sage [2017/03/09(木) 19:17:51.15 ID:fyCowO4bM.net]
C99は便利機能が云々ってよりは
クリーンなコードの為のガイドラインに近い気がする



201 名前:デフォルトの名無しさん (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 19:30:40.14 ID:9nAslxZ/0.net]
>>198
そうだね、強いて述べると安心感だね
alloca() とからくりが同じなら、よくわかるし、なによりも今までずっと使ってきたから安心だ、そこんところは規格に書いてないの?

>>198
VLA の確保領域がスタックなら、十中八九それは alloca() と同じだろうね
いいたいことは、C99 の大部分が、C89 ですでにやってきたことだ、ということだよ

>>86
>ついてこれないジジイが使わないのは勝手だが
とあるが、
実のところ、諸々のことは昔からやってきたことで、C89 を味わっているクラスとしては、C99 は今更感が強いんだよ
いや、今更感というのもしっくりこないな、なんというか、字面だけで見栄えがいいというだけで規格している、というか、
スタックかヒープかをはっきりさせないところというか

少なくとも、C++11 の右辺値参照ほどのインパクトは、ない

>>199
それは無知というほかはない

202 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 19:54:01.97 ID:QUckDsXy0.net]
>>201
>それは無知というほかはない
まさかc faq 2.6がflexible array memberだと言う主張が?
これまでの戯言読む限りはそうっぽいが w

203 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/09(木) 19:56:31.69 ID:9nAslxZ/0.net]
>>202
そのとおりだよ

そうじゃないというのなら、
お前のいうところの flexible array member を使ったコードを書いてみてくれないかな?
お前のいうところの flexible array member の必要性を明示するコードを頼む

204 名前:デフォルトの名無しさん (ドコグロ MM27-ezmg) mailto:sage [2017/03/09(木) 20:02:02.08 ID:LA1Z4pgPM.net]
あの〜、セキュリティ云々の話は知ったかしちゃいました
って言うことでいいのかな?

205 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/09(木) 20:13:40.89 ID:F9CUJ5lt0.net]
自分の書いたコードがいつか世界中に出回ってインジェクションアタックの標的にされるかもしれない
そんなふうに考えていた時期が俺にもありました

206 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 20:18:03.80 ID:QUckDsXy0.net]
>>203
ジジイのくせに基本的なこと知らねーのな

c faq 2.6はstruct hackと呼ばれる【技法】
初めは長さ1のアレイで実装されてた
gccだかどっかが長さ0のアレイを許して大きさの計算を楽にした
でも、規格に完全に適合して無かった
大きな長さのアレイで実装する事が提案されたが、とてもダサかった
struct hackを規格に適合して実装するためのC99の【言語機能】がflexible array memberだ

207 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 20:21:37.39 ID:QUckDsXy0.net]
>>201
>実のところ、諸々のことは昔からやってきたことで、C89 を味わっているクラスとしては、C99 は今更感が強いんだよ
>いや、今更感というのもしっくりこないな、なんというか、字面だけで見栄えがいいというだけで規格している、というか、
>スタックかヒープかをはっきりさせないところというか

長くやってても、何も理解していないと言う悪い見本

208 名前:デフォルトの名無しさん (ブーイモ MM2b-busz) mailto:sage [2017/03/09(木) 20:39:48.15 ID:eJ64f19XM.net]
C99の規格にスタックとかヒープとかいう概念はなかったはず

209 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/09(木) 21:02:30.09 ID:hGM1T24/0.net]
>>206
つまり C FAQ 2.6 が発展解消 flexible array member につながるんだね
結局,昔からやってきたことだね,VLA も同じだね

>>208
まあ,そうだが

210 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/09(木) 21:07:29.41 ID:hGM1T24/0.net]
>>204
あはは,alloca() と同じだったんなら,まあ VLA でもいっか‥と転向しました,てへぺろ



211 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 21:15:22.33 ID:QUckDsXy0.net]
>>209
【技法】と【言語機能】の区別つけような ジジイ

212 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/09(木) 21:17:42.13 ID:QUckDsXy0.net]
>>210
あー、つまりVLAがどこに確保されるか知らないで
筋悪っ とか言ってたって事ね 死ねジジイ

213 名前:デフォルトの名無しさん (ブーイモ MM2b-busz) mailto:sage [2017/03/10(金) 00:57:30.56 ID:+YP/FacCM.net]
で、セキュリティホールの話は?

214 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/10(金) 01:08:50.79 ID:1BLND3090.net]
181 デフォルトの名無しさん (ワッチョイ fb4e-HNYZ)[] 2017/03/09(木) 08:59:36.08 ID:Kb3gKMEf0

>>180
google で
「スタックオーバーフロー セキュリティ」
を検索して最初に表示されるページを読んでから反応しなよ…

215 名前:デフォルトの名無しさん (ブーイモ MM2b-busz) mailto:sage [2017/03/10(金) 01:22:38.60 ID:+YP/FacCM.net]
>>214
環境によって順位が変わりうるので具体的なURLよろ

216 名前:デフォルトの名無しさん (ワッチョイ 3672-1om1) mailto:sage [2017/03/10(金) 02:56:17.07 ID:7J5p523R0.net]
valgrindでexpとかtanがエラー出るのなんでだろう

217 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/10(金) 07:35:26.46 ID:Jt0Ka4fq0.net]
>>212
alloca() をずっと使ってきたといったろう?VLA もおそらくそんなところだろうと想像してはいたね,
ただ筋悪だと思うことは今でも変わらないよ,配列は普通に固定長で書いたほうがいい,という主観だからね
ただここで意見をいただいて(お前からもいただいた,と思っているよ)スタンスの一部が変わったかもしれない

>>211
>>206 までさも大事なことのように出し惜しみしていた内容だが
実は >>168 ですでに述べられていることだったね

218 名前:デフォルトの名無しさん (ドコグロ MMca-ezmg) mailto:sage [2017/03/10(金) 08:06:05.30 ID:V/tY9QS2M.net]
>>217
お前がやることは

知ったかしてよく知らないのに >>173 のレスをしてしまいました
ごめんなさい

だろ

219 名前:デフォルトの名無しさん (アウアウカー Sa7f-K8Mp) mailto:sage [2017/03/10(金) 08:33:50.79 ID:9tLH1/xpa.net]
技術的な議論で人格攻撃するのはやめなよ

220 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/10(金) 08:43:28.66 ID:1BLND3090.net]
おい、ID:Kb3gKMEf0出て来いよ



221 名前:デフォルトの名無しさん (ワッチョイ 364f-aizu) mailto:sage [2017/03/10(金) 08:59:33.13 ID:USScrCM40.net]
VLAだからこそ、それがセキュリティーホールになるに至ってない
スタックオーバーフローは起こせるけど
そこからどうやってセキュリティーホールたる
悪意のあるコードの注入と実行に至るのか知りたい

確保サイズを超えての書き込み(オーバーラン)は
セキュリティーホールに成り得るけど、それはVLAだろうが固定だろうが同じだし

222 名前:デフォルトの名無しさん (ドコグロ MM83-pmxy) mailto:sage [2017/03/10(金) 09:12:05.47 ID:OTPF9/DXM.net]
>>220
次に出てくる確率はどのくらいだろうね?

223 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 09:15:12.97 ID:1BLND3090.net]
>>217
VLAがどこに確保されるか確認したくて粘着してたと言い訳するのか?
じゃ、答え合わせが終わったところで、

> VLAのサイズと最大値は全く独立だ
につけてきた言いがかりは撤回するって事だな。

224 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 09:54:31.76 ID:1BLND3090.net]
ID:Kb3gKMEf0は逃亡しちゃったようだからもう一匹の当事者
セキュリティの穴を説明しろ

>>176 : ◆QZaw55cn4c (ワッチョイ be13-H6F/)2017/03/09(木) 07:10:53.29 ID:hGM1T24/0
> >>175
> VLA はセキュリティの穴になりうるね,実行時の値で配列の上限が決まるなんて危険な発想ではないかい?
> そんなものを標準に入れていいのか?

225 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/10(金) 10:02:29.68 ID:YR4SAqR10.net]
セキュリティーの穴とはセキュリティーホールの事です
セキュリティーホールとは安全のホールの事です
安全のホールとは安全の穴の事です。
安全の穴とは自分で調べろカスということです。

226 名前:デフォルトの名無しさん (エーイモ SEb2-j8zu) [2017/03/10(金) 11:15:35.92 ID:+H2nFcdAE.net]
苦cで学んでるけどc難しい

227 名前:デフォルトの名無しさん (アウアウウー Sa93-gCpv) mailto:sage [2017/03/10(金) 12:34:51.49 ID:6UnBWLdUa.net]
苦Cくらいの基礎的な部分は他の高級言語と比べるとわかりやすいと思うけどね
そいつらよか機械寄りの言語だからブラックボックスが少ないし
ただ暗記より理解が大事にはなる
人間の視点を捨てて機械の気持ちになるんだ

228 名前:デフォルトの名無しさん (ドコグロ MM83-UZLy) mailto:sage [2017/03/10(金) 12:46:04.08 ID:b/HgXddWM.net]
俺は人間をやめるぞ!

229 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/10(金) 13:47:06.37 ID:YR4SAqR10.net]
妖怪人間になるのか?

230 名前:デフォルトの名無しさん (ワッチョイ af7b-aox5) mailto:sage [2017/03/10(金) 13:56:43.32 ID:LsCbePTG0.net]
メーテル・・・



231 名前:デフォルトの名無しさん (ワッチョイ bf85-aizu) mailto:sage [2017/03/10(金) 18:35:04.54 ID:JlJm70jl0.net]
>>223
「VLA って alloca() のことじゃない、類似品なら C89 のときからあるよね」
「flexible array member って C FAQ に書いてあるじゃない、類似品なら C89 のときからあるよね」

「C99 についてこれないと老人よばわりするけど、実は昔からあるよね」

232 名前:デフォルトの名無しさん (ワッチョイ bf85-BkNt) mailto:sage [2017/03/10(金) 18:40:21.38 ID:JlJm70jl0.net]
>>218
>>173 は別人だよ

でもね、スタックに配列を置くんだったら基本固定長だね、まあ alloca() を使ってみたりするくらいだから自分も首尾一貫はしていないのは認めるけどね

>>173 の指摘はするどいね
>外部入力でリミット切らないとか、
自分もこわくてできないね

233 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 19:05:25.98 ID:1BLND3090.net]
>>231
>>217
VLAがどこに確保されるか確認したくて粘着してたと言い訳するのか?
じゃ、答え合わせが終わったところで、

> VLAのサイズと最大値は全く独立だ
につけてきた言いがかりは撤回するって事だな。

234 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/10(金) 19:06:34.39 ID:YR4SAqR10.net]
俺はリミット切らないぜ〜ワイルドだろ〜

235 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 19:10:43.67 ID:1BLND3090.net]
>>232
allocaは平気で使ってるようだけど、なんでVLAは
> >外部入力でリミット切らないとか、
> 自分もこわくてできないね
これなんだ? 謎

236 名前:デフォルトの名無しさん (ドコグロ MMca-ezmg) mailto:sage [2017/03/10(金) 19:32:49.66 ID:V/tY9QS2M.net]
>>232
別人ならすまん

> >>173 の指摘はするどいね
> >外部入力でリミット切らないとか、
> 自分もこわくてできないね
これはセキュリティホールの話かね?
そうだと言うならどこがどう危険なのか詳しく説明して欲しいんだが

237 名前:デフォルトの名無しさん (ワッチョイ bf85-BkNt) mailto:sage [2017/03/10(金) 19:33:05.83 ID:JlJm70jl0.net]
>>235
首尾一貫していないのは認めるよ、でもスタックに何でも乗せまくるのは怖いね
データをスタックに置き、スタックからヒープに移す一連の作業では、データ用の配列は固定長にするね、そこらへんは慎重にやってるよ
alloca のいいところは使い捨てができるところだね

いいたいことは >>231

238 名前:デフォルトの名無しさん (ワッチョイ bf85-BkNt) mailto:sage [2017/03/10(金) 19:37:50.00 ID:JlJm70jl0.net]
>>236
セキュリティホールも視野にいれているが、直接は関係ないかもしれないね
セキュリティホールは、書いている時点では予想もつかないところがあるから(ミスは事前にはわからない)
自分の能力を考えて、スタックには固定長をあてるようにしているよ
固定長の定数を最低限に振って(N=2 くらい)、それでも正常に動くことを確認したりしてから N=1024 とか 4096 とか適当にわりふっているよ

自分の能力を過信しないことだよ
だから VLA は使わない

239 名前:デフォルトの名無しさん (ドコグロ MMca-ezmg) mailto:sage [2017/03/10(金) 19:59:52.49 ID:V/tY9QS2M.net]
>>238
もう言ってることがむちゃくちゃだな...

> セキュリティホールも視野にいれているが、直接は関係ないかもしれないね
結局関係あるかどうかも知らないのに
> >>173 の指摘はするどいね
とか言ってたのかよ

> セキュリティホールは、書いている時点では予想もつかないところがあるから(ミスは事前にはわからない)
今の話に関係ないよな

> 自分の能力を考えて、スタックには固定長をあてるようにしているよ
お前の能力なんてどうでもいいし、プログラムの作り方もどうでもいい(部下がやってたら張り倒すけど)

> 自分の能力を過信しないことだよ
鏡を見た方がいいぞ

> だから VLA は使わない
これもどうでもいい結論だな

240 名前:デフォルトの名無しさん (JP 0H1f-busz) mailto:sage [2017/03/10(金) 20:00:22.53 ID:cy2JzExTH.net]
allocaは使うのに?



241 名前:デフォルトの名無しさん (フリッテル MM0e-X9Oq) mailto:sage [2017/03/10(金) 20:06:19.22 ID:Y9Psq7+lM.net]
1関数でスタッフを使っていいのはせいぜいキロバイトオーダーまで
メガバイト以上はヒープ推薦

242 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/10(金) 20:06:51.85 ID:YR4SAqR10.net]
VLAは政府の陰謀だから使っては駄目だ

243 名前:デフォルトの名無しさん (ワッチョイ f217-csvI) [2017/03/10(金) 20:44:24.96 ID:n8W4k0Sb0.net]
Windowsのカーネルモードは12KBのスタックサイズ制限があるので、ひとつの関数で数KBスタックを使うのはかなり贅沢。

244 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/10(金) 20:45:49.50 ID:Jt0Ka4fq0.net]
>>240
まあ,そうだね

245 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 21:57:09.32 ID:1BLND3090.net]
>>238
非標準ライブラリのallocaは使うのにVLAを使わない理由はなんだ
逃げてないで答えろよ

246 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/10(金) 21:59:24.00 ID:1BLND3090.net]
>>238
非標準ライブラリのallocaはセキュリティ上問題ない(だから使う)として
一方でVLAはセキュリティ上問題あるとしている根拠を述べよ

247 名前:デフォルトの名無しさん (ワッチョイ 723c-T4+7) mailto:sage [2017/03/11(土) 00:59:17.54 ID:99Bu6VN70.net]
VLAって本当になんであるんだろうな。
ソフトウェアの脆弱性を誘発するためにNSAやアメリカ政府が無理やりぶち込んだ仕様としか思えない。

248 名前:デフォルトの名無しさん (ブーイモ MM92-busz) mailto:sage [2017/03/11(土) 01:24:57.09 ID:37V8Z39XM.net]
>>247
どんな脆弱性?

249 名前:デフォルトの名無しさん (ワッチョイ cfd4-nt29) mailto:sage [2017/03/11(土) 01:44:41.71 ID:o4rVijF20.net]
>>241
スタックサイズ拡張したらダメなの?

250 名前:デフォルトの名無しさん (ドコグロ MMca-ezmg) mailto:sage [2017/03/11(土) 05:56:56.37 ID:0cGmXZ4gM.net]
>>247
> NSAやアメリカ政府が無理やりぶち込んだ仕様としか思えない。
基地害の妄想



251 名前:デフォルトの名無しさん (ドコグロ MMca-ezmg) mailto:sage [2017/03/11(土) 05:58:26.88 ID:0cGmXZ4gM.net]
>>249
>>243 みたいに拡張できないケースは少なくない

252 名前:デフォルトの名無しさん (ワッチョイ f338-9O7/) [2017/03/11(土) 08:06:11.09 ID:zScGv76W0.net]
https://www.youtube.com/watch?v=56-ktABNiR4
C言語マスターの生放送開始 お前らに指南してやんよ

253 名前:デフォルトの名無しさん (ワッチョイ 0742-2hGO) mailto:sage [2017/03/11(土) 09:07:47.31 ID:qsNY6D990.net]
wikipedia

VLA
超大型干渉電波望遠鏡群(Very Large Array,VLA)
軽量飛行機 (Very Light Aircraft) - 欧州における航空機分類の一つ
垂直発射アスロックミサイル(Vector Launch ASROC)
ボランティア法律家による芸術支援団体(Volunteer Lawyers for the Arts,VLA)
ヴィオラ (Viola) の略称 (vla, va) - ヴァイオリン族の弦楽器

陰謀だな
まちがいない

254 名前:デフォルトの名無しさん (ワッチョイ fe81-1sZU) mailto:sage [2017/03/11(土) 12:50:26.01 ID:hyZtRr/u0.net]
C#なら一行で終わる内容をCは20〜30行必要w
老い先短いジジイどもは死ぬまでCで書いてろwww

255 名前:デフォルトの名無しさん (ワッチョイ be41-/tS9) [2017/03/11(土) 13:11:24.12 ID:awln0KGk0.net]
>>254
なんでC#は一行で済むと思う?

256 名前: ◆QZaw55cn4c (ワッチョイ bf85-BkNt) mailto:sage [2017/03/11(土) 15:26:38.47 ID:sAcoRj840.net]
>>239
お前は自分の論理を信用しすぎる
つhttps://en.wikipedia.org/wiki/Godel%27s_incompleteness_theorems

>>173
の指摘は鋭いと思うよ、外部入力でリミットを切らないのは悪手の典型だ
繰り返していっておくが、セキュリティホールは事前には書いている本人にもわからない
だから定石を信用して事を始めたほうが悪い結果がやってこない場合が多い
スタックあふれは発生してはじめてわかる、リンかのオプションを指定しても根本的解決にならない
毎月の windows update が一向に減らない理由も考慮しておいたほうがいい

C99 の可変長配列は、安易にスタックを大盛りにする悪手に誘導するという点で、筋悪だと主張している
(でも私は alloca は使うけどね :-)

257 名前:デフォルトの名無しさん (ワッチョイ bf85-BkNt) mailto:sage [2017/03/11(土) 15:27:36.34 ID:sAcoRj840.net]
>>246
alloca はスタック上に展開することがはっきりしているからね、でも C99 の VLA は実装上の指定は規定にはないのでは?

258 名前:デフォルトの名無しさん (ブーイモ MM2b-busz) mailto:sage [2017/03/11(土) 15:36:12.19 ID:VKYuFzhGM.net]
なんでスタック上にあることが確実なら安全になるの?

259 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/11(土) 15:40:27.05 ID:fayNaA1W0.net]
>>256
逃げずに答えろ

非標準ライブラリのallocaはセキュリティ上問題ない(だから使う)として
その一方でVLAはセキュリティ上問題あるとしている根拠を述べよ

260 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/11(土) 16:03:26.08 ID:+8AcHZCs0.net]
VLAはallocaのシンタックスシュガーだろシンタックスシュガーに
よってarray[size]のsizeがマクロか変数か気にしなくてよくなった。
きにしなくなるということは考えなくなるということだから
何も考えず配列を手軽に使えなくなったということだよ。



261 名前:デフォルトの名無しさん (ワッチョイ 723c-ezmg) mailto:sage [2017/03/11(土) 16:06:18.87 ID:d5jme4tX0.net]
>>256
前半は VLA 固有の話じゃないよな

> C99 の可変長配列は、安易にスタックを大盛りにする悪手に誘導するという点で、筋悪だと主張している
根拠のない主張はチラ裏にでも書いとけ

262 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/11(土) 16:09:24.59 ID:7UjqbkJQ0.net]
>>260
>VLAはallocaのシンタックスシュガーだろ
規格には書いていないけれども,まあ同意するね >>213
でも,スタック大盛りに誘導するのは筋悪だろう?

>>259
alloca() にセキュリティ上の問題がないとは主張していないよ
setjmp()/longjmp() と同じで,悪い使い方をすれば,当然バグる

263 名前:デフォルトの名無しさん (JP 0H1f-busz) mailto:sage [2017/03/11(土) 16:12:09.28 ID:bM520vnYH.net]
allocaはスタック大盛りに誘導しないの?

264 名前: ◆QZaw55cn4c (ワッチョイ be13-H6F/) mailto:sage [2017/03/11(土) 16:15:28.58 ID:7UjqbkJQ0.net]
もともとのお題は >>87 >>134 >>135 >>139 で,
最終的な回答は >>231 だよ,セキュリティの話は派生的な話題で,正直どうでもいい

265 名前:デフォルトの名無しさん (ワッチョイ 0719-9O7/) mailto:sage [2017/03/11(土) 16:22:03.96 ID:+8AcHZCs0.net]
[]のなかが数字のときはもはやVLAの特別な場合になってしまったんだよ。
VLAを使わないないと思っても実はみんな使ってるんだよな。

266 名前:デフォルトの名無しさん (ワッチョイ 725b-Zg/o) [2017/03/11(土) 16:22:22.50 ID:m3w8ys+M0.net]
>>264
もう相手にしなさんな。
複数の端末を使い出してるしよ

267 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/11(土) 16:35:26.69 ID:fayNaA1W0.net]
>>264
allocaを使って、VLAは筋悪といった理由は全然示してないな。
逃げずに答えろ。

> 最終的な回答は >>231 だよ,セキュリティの話は派生的な話題で,正直どうでもいい
じゃ
> VLA はセキュリティの穴になりうるね,実行時の値で配列の上限が決まるなんて危険な発想ではないかい?
> そんなものを標準に入れていいのか?
これは知ったかぶりしましたってことだな。

268 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) [2017/03/11(土) 16:39:36.88 ID:fayNaA1W0.net]
>>260
> VLAはallocaのシンタックスシュガーだろ
全然違う1000年ROMってろ

for() {
char *p = alloca(size);
}

for() {
char p[size];
}

269 名前:デフォルトの名無しさん (ワッチョイ 723c-ezmg) mailto:sage [2017/03/11(土) 16:51:56.73 ID:d5jme4tX0.net]
>>264
> セキュリティの話は派生的な話題で,正直どうでもいい
じゃあ絶賛していたこれは撤回でいいんだよね
> しかも外部入力でリミット切らないとか、セキュリティホールの典型じゃね?

270 名前:デフォルトの名無しさん (ワッチョイ ef6f-/mQW) mailto:sage [2017/03/11(土) 18:41:42.10 ID:p1f1fsAr0.net]
allocaで取った領域はブロックの終わりじゃなく、関数の終わりまで開放されない
VLAはブロックの終わりで開放されるところが違う

というかallocaの落とし穴みたいな話だね、これは



271 名前:デフォルトの名無しさん (ワッチョイ bf7b-NGN/) mailto:sage [2017/03/12(日) 09:00:20.57 ID:lxzttZnn0.net]
> というかallocaの落とし穴みたいな話だね、これは
C++脳の落とし穴だよ
単なるライブラリ関数が返したポインタをスコープ抜けただけで解放できるわけないじゃん

272 名前:デフォルトの名無しさん (ワッチョイ db7b-IJma) mailto:sage [2017/03/12(日) 14:21:13.54 ID:dQxGFGsK0.net]
Cのコンパイルで詰まっています。

vimで表示した時にカッコが赤くなるのは何でなんでしょうか?
i.imgur.com/n84ewum.png
カッコの対応はちゃんとやってると思います。。。

またこのソースをコンパイルしたときに
i.imgur.com/XIX3aCv.png
というエラーメッセージが出ますが、これもこの部分を変えていないのに
突然エラーが出始めました。
何度見てもここの表記は間違っていません、というか変えていないので間違ってるわけありません。

これで今日の朝からずっと止まっているのですが、、、
原因が分かる方いますでしょうか?

273 名前:デフォルトの名無しさん (ワッチョイ bf7b-WeoV) mailto:sage [2017/03/12(日) 14:24:07.85 ID:lxzttZnn0.net]
main( ←これが閉じていない

274 名前:デフォルトの名無しさん (エムゾネ FF92-mCUX) mailto:sage [2017/03/12(日) 14:24:47.88 ID:CrU6WH4/F.net]
( と {

275 名前:デフォルトの名無しさん (ワッチョイ db7b-oWlJ) mailto:sage [2017/03/12(日) 14:25:47.72 ID:dQxGFGsK0.net]
ありがとうございます死んで来ます
いつ消えたんだ…

276 名前:デフォルトの名無しさん (ワッチョイ 0742-csvI) mailto:sage [2017/03/12(日) 15:15:20.20 ID:IXx0ivIZ0.net]
生きるんだ!

277 名前:デフォルトの名無しさん (アウアウカー Sa7f-K8Mp) mailto:sage [2017/03/12(日) 16:58:28.23 ID:Fl2HPIwQa.net]
か、可愛いw
キモいレスバにフレッシュなコメ

278 名前:デフォルトの名無しさん (フリッテル MM0e-X9Oq) mailto:sage [2017/03/13(月) 12:35:01.26 ID:WVfxmOF7M.net]
この程度のタイプミスぐらい自分で見つけられんようじゃ
先が厳しいんじゃないか
C言語に関係なく

279 名前:デフォルトの名無しさん (スップ Sd92-oWlJ) mailto:sage [2017/03/13(月) 14:36:21.34 ID:dPy5EX8Fd.net]
タイプミスを見つけれるかどうかは
エディタとエラーメッセージの優秀さによるという持論

280 名前:デフォルトの名無しさん (フリッテル MM0e-X9Oq) mailto:sage [2017/03/13(月) 16:10:47.81 ID:v3XqhUuXM.net]
これだけ赤く指摘してくれててまだそういうこと言えちゃうとは
人間の欲は天井知らずだな



281 名前:デフォルトの名無しさん (ワッチョイ 13f2-jJqA) [2017/03/13(月) 16:55:25.56 ID:tV/WpGXC0.net]
与えた入力に対して期待値と異なる出力となったとき
何が起きているか洞察をする専門職のくせに
コンパイラだけが何か特別なデバイスであるかのように思い込んでいるアフォだね

282 名前:デフォルトの名無しさん (ワッチョイ efb5-j8zu) [2017/03/13(月) 17:25:35.83 ID:6TfSzvFh0.net]
つかエラーメッセージに答えがあるじゃん

283 名前:デフォルトの名無しさん (ワッチョイ e3dc-XjEB) mailto:sage [2017/03/13(月) 17:57:51.98 ID:IkDDkkqX0.net]
49行の開き括弧か86行の閉じ括弧に色が付けば
もっとエラー位置が分かりやすいとは思うけどね。

main(
の内側に書ける要素がvimの文法チェック情報に登録されていて、
それに合致しない部分が指摘される、という仕掛けかな。

284 名前:デフォルトの名無しさん (スップ Sd92-oWlJ) mailto:sage [2017/03/13(月) 18:42:23.61 ID:dPy5EX8Fd.net]
>>283
言いたかったのはそういうことです
もう少しピンポイントにエラーメッセージ出せそうな気がするのですが
なかなかそうもいかないものなのだろうか

285 名前:デフォルトの名無しさん (ドコグロ MMca-pmxy) mailto:sage [2017/03/13(月) 18:47:33.49 ID:DDChi3YkM.net]
コンパイラがそれを指摘してるのに。

286 名前:デフォルトの名無しさん (アウアウカー Sa7f-K8Mp) mailto:sage [2017/03/13(月) 20:33:47.62 ID:RNfJ73Ada.net]
初心者だから許してやれよw
分かんなくて聞く人も周りにいなかったんだろ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<81KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef