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/
前
http://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 140 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
2017/05/11(木) 22:20:03.99ID:cn414UR902デフォルトの名無しさん (ドコグロ MMa7-Ec/g)
2017/05/12(金) 13:08:15.72ID://5I1UQ2M イラネ
3デフォルトの名無しさん (スププ Sd9f-ZVjJ)
2017/05/12(金) 14:58:26.42ID:IiKpnLAId C言語からVBAで作ったエクセルマクロって実行できないの?
4デフォルトの名無しさん (ワッチョイ cfa9-xHOS)
2017/05/12(金) 16:05:36.32ID:UWkhiPx90 C99からif,for,whileの後に続く括弧の中がブロックのなかという
認識になったらしいんですけど、for以外でどうやって
その中で変数を宣言できるというんですか?
だったらforだけブロックの中っていうことでいいんじゃないんですか?
認識になったらしいんですけど、for以外でどうやって
その中で変数を宣言できるというんですか?
だったらforだけブロックの中っていうことでいいんじゃないんですか?
5デフォルトの名無しさん (ワッチョイ c300-yCMP)
2017/05/12(金) 16:31:31.05ID:js7UY7om0 if ( char * p = malloc( N ) )
こういうのとか?
こういうのとか?
6デフォルトの名無しさん (ワッチョイ cfa9-xHOS)
2017/05/12(金) 18:03:15.98ID:UWkhiPx90 それな
7デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/12(金) 22:01:43.38ID:HEUwhpUy0 C言語でエクセルのVBAマクロの実行できないの?
8片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9f-TJ40)
2017/05/12(金) 22:06:16.73ID:r6F8dCD7d9デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/12(金) 22:08:09.17ID:HEUwhpUy0 C++かぁ
10デフォルトの名無しさん (ワッチョイ ffdd-Ec/g)
2017/05/12(金) 22:44:50.71ID:y9SJMwIK0 >>7
VBA マクロのインタプリター書けば良くね?Cで。
VBA マクロのインタプリター書けば良くね?Cで。
11デフォルトの名無しさん (ワッチョイ 83c8-SU9n)
2017/05/12(金) 23:06:05.96ID:UkU1KlKv0 おいQZゴミコードをここで書くなよ
ウンコードに投稿しろよ
ウンコードに投稿しろよ
12デフォルトの名無しさん (ワッチョイ 83c8-SU9n)
2017/05/12(金) 23:07:33.76ID:UkU1KlKv0 おいQZ
おまえってやればやるほど洗練された糞さを放ったコードが出来上がるから
自覚しとけ
おまえってやればやるほど洗練された糞さを放ったコードが出来上がるから
自覚しとけ
13デフォルトの名無しさん (ワッチョイ 83c8-SU9n)
2017/05/12(金) 23:09:00.10ID:UkU1KlKv0 おいQZいろんなC系スレでクソコードばらまくのやめろよ
今時Cでクソなコード書いてるのはおまえしかいない
今時Cでクソなコード書いてるのはおまえしかいない
14デフォルトの名無しさん (ワッチョイ 3fd4-00IQ)
2017/05/13(土) 12:44:34.80ID:vKP2EClq0 printf("%s", string);
ではなくて
printf(string);
でエラーが出ないようにするにはどうしたらいいですか?
ではなくて
printf(string);
でエラーが出ないようにするにはどうしたらいいですか?
15デフォルトの名無しさん (ワッチョイ cfa9-Pho8)
2017/05/13(土) 13:06:30.63ID:7e4RDEpq0 #define printf(string) printf("%s", string)
とする
とする
16デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/13(土) 13:47:03.32ID:7pndE6Ym0 stringがchar*なら、それでエラーは出ない
キミが間違っとる
キミが間違っとる
17デフォルトの名無しさん (ワッチョイ c300-yCMP)
2017/05/13(土) 14:03:34.24ID:u94khtn50 コンパイラーによってはセキュリティ警告でも出るんだろうな
18デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/13(土) 14:12:40.14ID:m48zL+ZP0 >>16
print「f」なのにフォーマットしないってなんか気持ち悪いな
print「f」なのにフォーマットしないってなんか気持ち悪いな
19デフォルトの名無しさん (ワッチョイ 7f3c-FKuM)
2017/05/13(土) 14:13:58.16ID:RjzTmCQE0 エラーがコンパイル時なのか実行時なのか
20デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/13(土) 14:20:39.18ID:m48zL+ZP0 gcc使っているならコンパイル時のオプションに-wでコンパイルできたわ
21デフォルトの名無しさん (ドコグロ MM5f-Ec/g)
2017/05/13(土) 14:51:14.61ID:7U8nUyJbM22デフォルトの名無しさん (ワッチョイ 7fb6-9BLN)
2017/05/13(土) 14:58:27.01ID:Swj/Rgps0 >>21
馬鹿
馬鹿
23デフォルトの名無しさん (ワッチョイ c33c-SU9n)
2017/05/13(土) 15:42:18.61ID:zKUmpFvI0 string の中身に %s とか %d とかはいってると あわわわ
24デフォルトの名無しさん (ワッチョイ cf1f-PerL)
2017/05/13(土) 15:42:59.20ID:VT1sIlGJ0 ヌルポン渡すと落ちるぞ
25デフォルトの名無しさん (アウアウカー Sa67-wCA7)
2017/05/13(土) 15:55:06.50ID:1Sz8mIFNa そもそも出ないだろw
26デフォルトの名無しさん (ワッチョイ b3a3-lo9r)
2017/05/13(土) 22:21:45.16ID:IUtkDsju0 stringがワイド文字列なら警告くらい出るだろ
27デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/13(土) 22:24:52.04ID:7pndE6Ym028デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/13(土) 23:37:01.87ID:Bvln+1PG0 format string attackって攻撃が実在するからな
C11で%nが廃止されたのも、それが原因だし
C11で%nが廃止されたのも、それが原因だし
29デフォルトの名無しさん (ワッチョイ ff4c-7CLb)
2017/05/14(日) 03:33:24.24ID:AUHwE8VO030デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/14(日) 03:39:55.42ID:RBSPlVIO0 やりたいことって、putsではダメなのかな?
31デフォルトの名無しさん (ワッチョイ cfa9-Pho8)
2017/05/14(日) 04:15:58.62ID:c1+aTdNX0 プッツ!
32デフォルトの名無しさん (ワッチョイ e33c-ei9w)
2017/05/14(日) 10:30:41.42ID:QnhMTTR+0 a+=1;
と
a++;
って同じ意味ですか?
と
a++;
って同じ意味ですか?
33デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/14(日) 10:51:06.70ID:44d8vf440 >>32
a+=1 と ++a の評価は同じ
a+=1 と a++ の評価は違う
評価後の値はどちらも同じ
#include <stdio.h>
int main(void)
{
int a;
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a += 1); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); //a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", ++a); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); // a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a++); // a=0 評価結果はインクリメント前の値
printf("%d\n\n", a); // a=1
return 0;
}
a+=1 と ++a の評価は同じ
a+=1 と a++ の評価は違う
評価後の値はどちらも同じ
#include <stdio.h>
int main(void)
{
int a;
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a += 1); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); //a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", ++a); // a=1 評価結果はインクリメント後の値
printf("%d\n\n", a); // a=1
a = 0;
printf("%d\n", a); // a=0
printf("%d\n", a++); // a=0 評価結果はインクリメント前の値
printf("%d\n\n", a); // a=1
return 0;
}
34デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 10:50:08.41ID:ITGYMTaF0 int a=1;
a = a+++a;
これ、たいていの環境で 3 になるみたいだけど
内部ではどっちに構文解析されてるの?
a = a+++a;
これ、たいていの環境で 3 になるみたいだけど
内部ではどっちに構文解析されてるの?
35デフォルトの名無しさん (ワッチョイ c328-Z6j5)
2017/05/15(月) 11:49:32.39ID:8jcxUI920 >>34
a=b++ + c;
a=b++ + c;
36デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/15(月) 11:56:31.63ID:Z3hdp57V0 >>34
後置インクリメント演算子(a++)は+演算子や前置インクリメント演算子(++a)より優先順位高い
後置インクリメント演算子(a++)は+演算子や前置インクリメント演算子(++a)より優先順位高い
37デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 12:12:51.85ID:Vosr5hkL0 >>34
VC++の場合
a = (a + a)++;
GCCの場合
a = ++(a + a);
int a = 10;
printf("%d\n", a); // a=10
printf("%d\n", a=a+++a); // a=20 (VC++の場合)、a=21 (GCCの場合)
printf("%d\n\n", a); // a=21
VC++の場合
a = (a + a)++;
GCCの場合
a = ++(a + a);
int a = 10;
printf("%d\n", a); // a=10
printf("%d\n", a=a+++a); // a=20 (VC++の場合)、a=21 (GCCの場合)
printf("%d\n\n", a); // a=21
38デフォルトの名無しさん (ワッチョイ 7f0e-z3es)
2017/05/15(月) 12:55:00.64ID:FMK+ZQcW0 右辺値のインクリメントが出鱈目過ぎる
39デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 13:04:41.31ID:m4iBjxKl040デフォルトの名無しさん (ワッチョイ 8392-+8ye)
2017/05/15(月) 13:26:43.15ID:Z3hdp57V0 >>39
えっ? 関係ないの?
えっ? 関係ないの?
41デフォルトの名無しさん (ワッチョイ 7fcd-/tbB)
2017/05/15(月) 14:05:11.81ID:KBSLJwGw0 >>37
// GCCの場合
a=10;
printf("1: %d\n", a = a++ + a); // a=21
a=10;
printf("2: %d\n", a = ++a + a); // a=22
a=10;
printf("3: %d\n", a = a + a++); // a=21
a=10;
printf("4: %d\n", a = a + ++a); // a=22
1と2は予想通りだけど3と4は予想が外れた。
GCCは素直に前方から評価すると思っていたが、
インクリメント演算がある項を先に評価するようだ。
// GCCの場合
a=10;
printf("1: %d\n", a = a++ + a); // a=21
a=10;
printf("2: %d\n", a = ++a + a); // a=22
a=10;
printf("3: %d\n", a = a + a++); // a=21
a=10;
printf("4: %d\n", a = a + ++a); // a=22
1と2は予想通りだけど3と4は予想が外れた。
GCCは素直に前方から評価すると思っていたが、
インクリメント演算がある項を先に評価するようだ。
42デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 14:08:51.26ID:ITGYMTaF043デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 14:28:56.88ID:m4iBjxKl044デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 14:50:03.73ID:k1YI7zCW0 知ったかぶりしないで
副作用完了点を検索してからレスしようね
副作用完了点を検索してからレスしようね
45デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 15:08:26.82ID:m4iBjxKl0 さすがに、a=a+++a が未定義なことぐらいわかってるだろ
そのうえで、どう動作してるのだろうかって話じゃねーの?
そのうえで、どう動作してるのだろうかって話じゃねーの?
46デフォルトの名無しさん (ワッチョイ 13df-TInS)
2017/05/15(月) 15:17:45.01ID:ugjsGD9A0 どう字句解析されるのかって話だろ
47デフォルトの名無しさん (アウアウカー Sa67-W6g0)
2017/05/15(月) 15:41:11.64ID:+h60b5kha 初めから()で囲んで優先つけた方がいいね
48デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 15:48:46.87ID:Vosr5hkL0 VC++での逆アセンブルコード (Visual Studio 2017 debugモード)
// a=a++
a = 10;
004037DE mov dword ptr [a],0Ah
a = a++;
004037E5 mov eax,dword ptr [a]
004037E8 mov dword ptr [a],eax
004037EB mov ecx,dword ptr [a]
004037EE add ecx,1
004037F1 mov dword ptr [a],ecx
// a=++a
a = 10;
004037F4 mov dword ptr [a],0Ah
a = ++a;
004037FB mov eax,dword ptr [a]
004037FE add eax,1
00403801 mov dword ptr [a],eax
00403804 mov ecx,dword ptr [a]
00403807 mov dword ptr [a],ecx
// a = a+++a
a = 10;
0040380A mov dword ptr [a],0Ah
a = a+++a;
00403811 mov eax,dword ptr [a] // aの値と
00403814 add eax,dword ptr [a] // aの値を加算して (a+a)
00403817 mov dword ptr [a],eax // 一時保存(評価)して
0040381A mov ecx,dword ptr [a] // 評価結果に対して
0040381D add ecx,1 // 1を加算して (a+a)++
00403820 mov dword ptr [a],ecx // 最終結果をaに代入
// a=a++
a = 10;
004037DE mov dword ptr [a],0Ah
a = a++;
004037E5 mov eax,dword ptr [a]
004037E8 mov dword ptr [a],eax
004037EB mov ecx,dword ptr [a]
004037EE add ecx,1
004037F1 mov dword ptr [a],ecx
// a=++a
a = 10;
004037F4 mov dword ptr [a],0Ah
a = ++a;
004037FB mov eax,dword ptr [a]
004037FE add eax,1
00403801 mov dword ptr [a],eax
00403804 mov ecx,dword ptr [a]
00403807 mov dword ptr [a],ecx
// a = a+++a
a = 10;
0040380A mov dword ptr [a],0Ah
a = a+++a;
00403811 mov eax,dword ptr [a] // aの値と
00403814 add eax,dword ptr [a] // aの値を加算して (a+a)
00403817 mov dword ptr [a],eax // 一時保存(評価)して
0040381A mov ecx,dword ptr [a] // 評価結果に対して
0040381D add ecx,1 // 1を加算して (a+a)++
00403820 mov dword ptr [a],ecx // 最終結果をaに代入
49デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 16:01:51.35ID:Vosr5hkL0 GCCは逆コンパイラが使える環境を持っていないので誰か頼みます
50デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/15(月) 16:17:06.14ID:vCh6HJnv0 -S付けるとアセンブラソース出力してくれるよ
51デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 16:17:38.49ID:k1YI7zCW052デフォルトの名無しさん (ワッチョイ 2375-QWrk)
2017/05/15(月) 16:26:58.46ID:K4VlRHcT053デフォルトの名無しさん (ワッチョイ 2375-QWrk)
2017/05/15(月) 16:38:44.35ID:K4VlRHcT0 >>51
a+++a;は未定義動作でしょ?
a+++a;は未定義動作でしょ?
54デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 16:55:22.96ID:m4iBjxKl055デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 17:14:07.00ID:Vosr5hkL0 >>52を利用して逆アセンブルコードを調べてみた
スタックを使って細工するところとかコードの展開内容としては結構トリッキーだけど
GCCの場合のa=a+++a のイメージとしては
{
tmp = a, a=(++a) + tmp;
}
といった感じかな
>>54の言う通り内部的には別変数を利用しているとも言える
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1]
// 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
スタックを使って細工するところとかコードの展開内容としては結構トリッキーだけど
GCCの場合のa=a+++a のイメージとしては
{
tmp = a, a=(++a) + tmp;
}
といった感じかな
>>54の言う通り内部的には別変数を利用しているとも言える
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1]
// 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
56デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/15(月) 17:17:38.16ID:Vosr5hkL0 レイアウト崩れたので修正
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1] // 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
逆アセンブルコード
push rbp
mov rdp, rsp
a = 10;
mov DWORD PTR [rbp-4], 10
a = a+++a;
mov eax, DWORD PTR [rbp-4] // aの値に
lea edx, [rax+1] // 1を加算して
mov DWORD PTR [rbp-4], edx // aに保存
add DWORD PTR [rbp-4], eax // aに元のaの値を加算
pop rbp
57デフォルトの名無しさん (ワッチョイ 7f0e-z3es)
2017/05/15(月) 17:33:28.21ID:FMK+ZQcW0 無能な働き者
58デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/15(月) 18:48:03.94ID:k1YI7zCW059デフォルトの名無しさん (ブーイモ MM47-ei9w)
2017/05/15(月) 20:47:42.32ID:l6TF2MzAM60デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/15(月) 21:40:37.62ID:ITGYMTaF061デフォルトの名無しさん (ワッチョイ d3cd-+8ye)
2017/05/15(月) 22:35:38.71ID:m4iBjxKl0 ざっくりだけど
C99以前だとaの変更とその変更と関係ないaの評価を行っているからアウト
C11だとa++でのaへの1加算と、2つ目のaの評価に順序性がないからアウト
C99以前だとaの変更とその変更と関係ないaの評価を行っているからアウト
C11だとa++でのaへの1加算と、2つ目のaの評価に順序性がないからアウト
62デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/15(月) 22:43:52.12ID:KR9fXitY0 おいQZお前はC向いてないからやめろ
このスレを荒らすなクソマニア
このスレを荒らすなクソマニア
63デフォルトの名無しさん (ワッチョイ e33c-mRCJ)
2017/05/16(火) 02:46:28.46ID:8VX1hNny0 a = f(x) + g(x);
とした場合、f(x)とg(x)の関数呼び出しで
どちらが先になるのかは未定義ってこと?
とした場合、f(x)とg(x)の関数呼び出しで
どちらが先になるのかは未定義ってこと?
64デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/16(火) 03:27:48.17ID:lv7gi33v0 >>63
関数呼び出しの順序の問題ではなくて、インクリメント演算子を自分自身に適用した場合の副作用の問題
f(x)の副作用としてg(x)の状態を変化させ、g(x)の副作用としてf(x)の状態を変化させるような場合、(f(x) + g(x))の評価は未定義ということ
関数呼び出しの順序の問題ではなくて、インクリメント演算子を自分自身に適用した場合の副作用の問題
f(x)の副作用としてg(x)の状態を変化させ、g(x)の副作用としてf(x)の状態を変化させるような場合、(f(x) + g(x))の評価は未定義ということ
65デフォルトの名無しさん (ワッチョイ 7f92-xFWy)
2017/05/16(火) 03:34:54.85ID:lv7gi33v0 「インクリメント演算子を自分自身に適用した場合」は説明不足だった
「同じ式の中でインクリメント演算子を自分自身に繰り返し適用した場合」の方が適切だった
「同じ式の中でインクリメント演算子を自分自身に繰り返し適用した場合」の方が適切だった
66デフォルトの名無しさん (ワッチョイ e33c-mRCJ)
2017/05/16(火) 04:11:10.64ID:8VX1hNny0 回答ありがとう
67デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/16(火) 12:24:07.64ID:hxKx6VJm0 C言語でVBA
68デフォルトの名無しさん (ワッチョイ b3a3-lo9r)
2017/05/16(火) 14:51:29.95ID:uP7i9rQE069デフォルトの名無しさん (ドコグロ MMa7-Ec/g)
2017/05/16(火) 18:02:14.83ID:9umlqZ68M a=a+++++aはエラーなの?
70デフォルトの名無しさん (ワッチョイ 8383-hEfH)
2017/05/16(火) 18:26:04.60ID:j2WgBIQo0 大学の講義でc言語やってるのですが、行き詰まってしまったので質問させていただきます
分割コンパイルしているのですが、全部書いてあります
コメント文で分割コンパイルの区切りを表しています
http://codepad.org/VplJG9tZ
これによって表示されるものを左に90度回転させたいのですが条件としてmain関数しかいじってはいけないというものがあります
2次元配列でいけるのかと思ったのですが、どうしたらいいかわからず手詰まりです
よろしくお願いします
分割コンパイルしているのですが、全部書いてあります
コメント文で分割コンパイルの区切りを表しています
http://codepad.org/VplJG9tZ
これによって表示されるものを左に90度回転させたいのですが条件としてmain関数しかいじってはいけないというものがあります
2次元配列でいけるのかと思ったのですが、どうしたらいいかわからず手詰まりです
よろしくお願いします
71デフォルトの名無しさん (ワッチョイ 8335-pPum)
2017/05/16(火) 18:28:00.76ID:7Qb0OzW/0 宿題スレにいけ
72デフォルトの名無しさん (ワッチョイ 8ff3-SU9n)
2017/05/16(火) 19:46:46.04ID:GFMW00ds0 a = a----a;
ってコンパイルできないのね
a = a-- - -a;
にすればコンパイルはできるが
ってコンパイルできないのね
a = a-- - -a;
にすればコンパイルはできるが
73デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/16(火) 20:26:25.96ID:fevd2QwgM74デフォルトの名無しさん (ワッチョイ e33c-6Dbp)
2017/05/16(火) 20:48:15.67ID:8VX1hNny0 >>64 >>68
レスもらっておいて何ですが、やっぱりなんか引っ掛かってたので自分でも調べてみました
http://www.soum.co.jp/misc/tom/programmer/4.html#id9
https://mattn.kaoriya.net/software/lang/c/20130426110223.htm
あたりを読んで理解した気になりました
C言語テラコワス
レスもらっておいて何ですが、やっぱりなんか引っ掛かってたので自分でも調べてみました
http://www.soum.co.jp/misc/tom/programmer/4.html#id9
https://mattn.kaoriya.net/software/lang/c/20130426110223.htm
あたりを読んで理解した気になりました
C言語テラコワス
75デフォルトの名無しさん (ワッチョイ 8383-hEfH)
2017/05/16(火) 21:05:08.54ID:j2WgBIQo0 >>71
すみません宿題スレとはどこでしょうか
すみません宿題スレとはどこでしょうか
76デフォルトの名無しさん (ドコグロ MMa7-Ec/g)
2017/05/16(火) 21:41:19.00ID:9umlqZ68M >>74
問題はグローバル変数を使うからじゃないの?
問題はグローバル変数を使うからじゃないの?
77デフォルトの名無しさん (ペラペラ SD9f-5YWk)
2017/05/16(火) 22:17:40.57ID:Ag35s8j3D78デフォルトの名無しさん (スププ Sd9f-ZVjJ)
2017/05/16(火) 22:33:27.46ID:Slyc8zwMd http://d.hatena.ne.jp/THE_MIND/touch/20090205/1233845661
これ真似たけどExcel開かない
これ真似たけどExcel開かない
79デフォルトの名無しさん (スププ Sd9f-ZVjJ)
2017/05/16(火) 22:33:48.78ID:Slyc8zwMd あ、間違えましたすみません
80デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:02:13.38ID:OtKe4ieo0 わからなかったの間違えだろ
正直に言えよ無職無能QZ
正直に言えよ無職無能QZ
81デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:06:19.27ID:OtKe4ieo0 QZ怒りの他スレ進出ww
82デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:07:01.08ID:OtKe4ieo0 宿題スレはどこでしょうかw
おいQZこのスレまで宿題スレ化しようと企んでるのかよ
おいQZこのスレまで宿題スレ化しようと企んでるのかよ
83デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:09:40.58ID:OtKe4ieo0 最近の宿題スレで質問者演じてるやつと口調が見事に一致
84デフォルトの名無しさん (ワッチョイ c300-yCMP)
2017/05/16(火) 23:17:13.00ID:f+nf4d790 インクリメントが無い言語はクソ
85デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:18:04.22ID:OtKe4ieo0 QZ怒りの負け惜しみ発言開始
86デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/16(火) 23:25:44.32ID:OtKe4ieo0 QZ怒りのC絶賛
87デフォルトの名無しさん (ワッチョイ 3f14-ZVjJ)
2017/05/16(火) 23:56:41.57ID:hxKx6VJm0 QZってなに
88デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 00:12:22.70ID:trROhyaD0 QZ怒りの自己紹介
89デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/17(水) 00:16:07.98ID:t3IXdrQL0 C言語って、機械に分かりやすい言語なんじゃないかな
90デフォルトの名無しさん (ブーイモ MMff-Z6j5)
2017/05/17(水) 00:34:30.07ID:Y+yL8XVsM 何をいまさら
91デフォルトの名無しさん (ワッチョイ cfc5-Ec/g)
2017/05/17(水) 06:54:51.29ID:wJf0VzTx0 >>87
エディタじゃね?
エディタじゃね?
92デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 11:14:31.02ID:trROhyaD0 QZ怒りのエディタ自慢
93デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:12:39.52ID:IVbqBIIG6 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int i, j, a; //int 整数
FILE *fout; //FILE ファイルの管理用
errno_t error;
if ((error = fopen_s(&fout, "output.txt", "w")) != 0){
printf(" エラー:ファイルの出力ができませんa \n");
exit(1);
}
a = 0;
for (i = 0; i<5; i++){
for (j = 0; j<10; j++){
a = a + 1;
fprintf_s(fout, "%d ", a);
}
fprintf_s(fout, "\n");
}
fclose(fout);
}
これにIf文使って
0 0 0 0 0 0 0 0 0 0
0 0 0 14 15 16 17 0 0 0
0 0 0 24 25 26 27 0 0 0
0 0 0 34 35 36 37 0 0 0
0 0 0 0 0 0 0 0 0 0
にするにはどうすればいいの?おしえてエロい人
#include <stdlib.h>
#include <math.h>
void main()
{
int i, j, a; //int 整数
FILE *fout; //FILE ファイルの管理用
errno_t error;
if ((error = fopen_s(&fout, "output.txt", "w")) != 0){
printf(" エラー:ファイルの出力ができませんa \n");
exit(1);
}
a = 0;
for (i = 0; i<5; i++){
for (j = 0; j<10; j++){
a = a + 1;
fprintf_s(fout, "%d ", a);
}
fprintf_s(fout, "\n");
}
fclose(fout);
}
これにIf文使って
0 0 0 0 0 0 0 0 0 0
0 0 0 14 15 16 17 0 0 0
0 0 0 24 25 26 27 0 0 0
0 0 0 34 35 36 37 0 0 0
0 0 0 0 0 0 0 0 0 0
にするにはどうすればいいの?おしえてエロい人
94デフォルトの名無しさん (ワッチョイ 838c-EaFd)
2017/05/17(水) 16:18:48.87ID:bdvqA1ry0 >>93
なかなか良い問題だな。大学生?
なかなか良い問題だな。大学生?
95デフォルトの名無しさん (ワッチョイ 23b9-8ulf)
2017/05/17(水) 16:23:04.39ID:se1pH3p/0 a = a + 1;
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
if (1 <= i && i <= 3 && 3 <= j && j <= 6) fprintf_s(fout, "%d ", a);
else fprintf_s(fout, "0 ");
96デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:24:58.51ID:IVbqBIIG697デフォルトの名無しさん (ワッチョイ cf1f-O3YC)
2017/05/17(水) 16:32:34.86ID:t3IXdrQL0 if (4 <= (a % 10) && (a % 10) <= 7) printf("%d ", a);
else printf("%d ", 0);
else printf("%d ", 0);
98デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:35:45.80ID:smeqz8ba099デフォルトの名無しさん (ガックシ 067f-sbka)
2017/05/17(水) 16:45:05.44ID:IVbqBIIG6100デフォルトの名無しさん (ワッチョイ 8392-287W)
2017/05/17(水) 16:47:44.21ID:smeqz8ba0101デフォルトの名無しさん (ドコグロ MM5f-FKuM)
2017/05/17(水) 18:12:03.01ID:sXGKWmUcM102デフォルトの名無しさん (ワントンキン MM1f-QWrk)
2017/05/17(水) 18:52:23.54ID:81y1dPE2M 初心者にありがちな無意味なコメントだね
103デフォルトの名無しさん (JP 0H67-Z6j5)
2017/05/17(水) 19:04:10.40ID:+kjRc1QwH 各行コメントつけろという教育の成果
104デフォルトの名無しさん (ワッチョイ 5378-SU9n)
2017/05/17(水) 22:14:49.58ID:trROhyaD0 QZ怒りのクソコメント
105デフォルトの名無しさん (ワッチョイ 5bc3-2WpE)
2017/05/18(木) 06:55:44.12ID:Zs9E6Q4t0 俺なら条件部分は↓のように書くかな。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
if ((a >= 10) && (a < 40) && ((a % 10) >= 4) && ((a % 10) <= 7)) {
「表示する値、表示しない値を条件に判断」という雰囲気。
普段は表組みの行と列の番号(変数i, j)で制御するけど、
この問題だとaの1の桁の値とjの値が一致しないから何やら座りが悪い感じ。
a = 10*i + j + 1;
みたいに「行と列の表示位置から表示すべき値を算出」なら馴染むんだけど。
106デフォルトの名無しさん (ドコグロ MM2f-gT+F)
2017/05/18(木) 09:33:34.39ID:9pl130wuM if(i==0&&j==9) printf(" 0¥n);
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
else if(i==1&&j==3) printf(" 14");
else if(i==1&&j==4) printf(" 15");
:
else printf(" 0");
107デフォルトの名無しさん (ドコグロ MM62-J3Da)
2017/05/18(木) 12:47:56.59ID:Zif2rhHOM108デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/18(木) 12:52:54.23ID:Bcm8Uos60 数直線的な並べかたやね
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
a が10〜40 を 10 <= a <= 40 と思考して
その並びを Cの文法に適合させて 10 <= a && a <= 40
109デフォルトの名無しさん (ワッチョイ d3af-gH2G)
2017/05/18(木) 20:50:09.48ID:V+1hCye70 >>104
森にお帰り
森にお帰り
110デフォルトの名無しさん (ワッチョイ ca60-THgW)
2017/05/18(木) 21:51:10.32ID:pFlTikPN0 int 変数 = 0;
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
do{
if(変数 != 0) printf("0〜100違う");
scanf("%d",&変数);
} while (変数 < 0 || 変数 > 100);
みたいな感じのやつどういう仕組み?
111デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 08:23:29.86ID:/7Hxktnz0 if (10 <= a && a < 40 && 4 <= a % 10 && a % 10 <= 7) {
ほらすっきり。
ほらすっきり。
112デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 10:32:30.55ID:xPzfUm9BM if (a/10&3&&a%10&4) { ...
113デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 13:22:27.31ID:/7Hxktnz0114デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 15:12:35.10ID:xPzfUm9BM 悔しかったらもっと短くしてみ。
115デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:26:11.54ID:nQP05M7h0116デフォルトの名無しさん (ワッチョイ 6f79-rE0G)
2017/05/19(金) 15:34:27.30ID:7FyDjLQd0 WannaCryの裏で「駐禁報告書」メール21万件超が大量拡散、添付ファイルは
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
ウイルス、銀行・カード情報など盗み取る
https://headlines.yahoo.co.jp/hl?a=20170519-00000094-impress-sci
117デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 15:36:33.74ID:9d9oZwpEM >>112
それ14の判定結果からして偽じゃね?
それ14の判定結果からして偽じゃね?
118デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 15:46:59.07ID:nQP05M7h0 きっちり優先順位をケアすれば合ってるんでないの?
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
10の位 & 3 (. 1 2 3 . 5 6 7 . 9
1の位 & 4 (. . . . 4 5 6 7 . .
119デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:12:46.81ID:huxogVYI0 >>114
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
特定の値域でしか正常に動作しない欠陥コード晒して、何粋がってんの?
120デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:37:44.71ID:xPzfUm9BM え?
i と j が20兆でも動く必要があるの?
で、短くできた?
i と j が20兆でも動く必要があるの?
で、短くできた?
121デフォルトの名無しさん (ドコグロ MM62-gT+F)
2017/05/19(金) 16:41:42.81ID:xPzfUm9BM122デフォルトの名無しさん (ワッチョイ 6b92-a1Gw)
2017/05/19(金) 16:48:56.31ID:huxogVYI0 絶望的にセンスが悪い
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
> a=>10
比較一回を
> a/10&3
除算一回, 論理積一回に改悪
しかも文字数でも1文字増えている
123デフォルトの名無しさん (ワッチョイ d3b9-PZTw)
2017/05/19(金) 16:53:29.16ID:nQP05M7h0 i,j で分離すべきなのか a で分離すべきなのか元質問からは読み取れんし・・・
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
a がたまたま正の整数で良かった (負数の剰余は考えたくないw)
124デフォルトの名無しさん (ワッチョイ 3e0d-Yh7p)
2017/05/19(金) 17:08:03.89ID:/7Hxktnz0125デフォルトの名無しさん (ブーイモ MM96-JCxV)
2017/05/19(金) 17:10:52.81ID:9d9oZwpEM >>118
あ、そうか。確かに。
あ、そうか。確かに。
126デフォルトの名無しさん (ワッチョイ bfcd-cm4/)
2017/05/19(金) 18:23:28.28ID:fvUmn17Y0 >>122
何言ってんだコイツ
何言ってんだコイツ
127デフォルトの名無しさん (ドコグロ MM02-gT+F)
2017/05/19(金) 19:00:41.98ID:rnjvvj6OM まあまあ。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
動作に関係ない仕様を思い込みで追加するのは良くないな。
「今不要なら、今書くな」だっけか。
128デフォルトの名無しさん (ブーイモ MM76-JCxV)
2017/05/19(金) 21:31:34.84ID:91iCt1N+M yagniかkissかってところ?
129デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/19(金) 21:48:07.18ID:dqcfAkCR0 C言語ってEclipseの補完が動かないのがデフォなの?
130デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/19(金) 22:17:08.26ID:ibFM4KQv0131デフォルトの名無しさん (ワッチョイ 636e-F2TF)
2017/05/19(金) 23:37:00.55ID:jsPxGdeJ0 Cは、ライブラリがすくない。おぼえることがすくない
132デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/20(土) 06:07:10.11ID:ZnY/c9+20 関数にinlineをつけて外部定義を無くせば
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
インライン展開されなければinline staticと違って
リンカエラーになるとおもってたんですけど、
inline staticを使ったときにはインライン展開される関数が
inlineをつけて外部定義の無くすとリンカエラーになります
なぜですか?
133デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/20(土) 08:13:36.98ID:Ykf9CvnEa >>131
野良ライブラリが多いのは多分Cが一番だろうけどな。
何かしらの言語の野良ライブラリの元はCの野良ライブラリが必要で〜とかで、Linuxじゃないと集めてられない。
Win32APIもC前提だけど、多分MSの中の人もいくつあるか把握出来てないんじゃないかな。
野良ライブラリが多いのは多分Cが一番だろうけどな。
何かしらの言語の野良ライブラリの元はCの野良ライブラリが必要で〜とかで、Linuxじゃないと集めてられない。
Win32APIもC前提だけど、多分MSの中の人もいくつあるか把握出来てないんじゃないかな。
134デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/20(土) 18:45:47.54ID:AtO1B5PX0 ISO/IECだってしょせんはブランドの1つでしかなく
別に数学的な公理とかじゃないからな
別に数学的な公理とかじゃないからな
135デフォルトの名無しさん (ワッチョイ cb92-5KF4)
2017/05/20(土) 19:07:14.30ID:cC3hGZmH0 無矛盾な公理的集合論は自己そのものの無矛盾性を証明する事ができない
136デフォルトの名無しさん (ワッチョイ c6c8-PCQh)
2017/05/20(土) 22:15:46.49ID:d/44g1et0 ./a.outって入力すると'.'は認識されてないと言われました
何が問題でしょうか?
何が問題でしょうか?
137片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-Vasm)
2017/05/20(土) 22:21:46.82ID:3NdrFBG3d >>136
コマンドプロンプトはMS-DOSのカルチャーで区切りはバックスラッシュで、MSYSやLinuxはbashのカルチャーで、スラッシュが区切りあるね。
コマンドプロンプトはMS-DOSのカルチャーで区切りはバックスラッシュで、MSYSやLinuxはbashのカルチャーで、スラッシュが区切りあるね。
138デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/20(土) 22:38:50.18ID:feiyOPgg0 >>136
区切りで「/」使いたいなら、パス全体を「"」で括る
「/」以降をオプション「.」をコマンドとして認識するから、全体で一つのコマンドと認識させる必要がある
「/」を区切りに使うのはunix
windowsでも一応使えるけど普通はバックスラッシュ使う
区切りで「/」使いたいなら、パス全体を「"」で括る
「/」以降をオプション「.」をコマンドとして認識するから、全体で一つのコマンドと認識させる必要がある
「/」を区切りに使うのはunix
windowsでも一応使えるけど普通はバックスラッシュ使う
139デフォルトの名無しさん (ワッチョイ c6c8-PCQh)
2017/05/20(土) 22:52:55.54ID:d/44g1et0140片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-Vasm)
2017/05/20(土) 23:02:48.40ID:3NdrFBG3d bashではセキュリティ上の理由で、現在のディレクトリのプログラムを起動するのに、./が必要だが、Winのプロンプトでは不要。
141デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/20(土) 23:12:15.43ID:feiyOPgg0142デフォルトの名無しさん (ワッチョイ cb92-a1Gw)
2017/05/20(土) 23:54:38.45ID:HEZORyL40 昔は.がデフォルトでPATHの先頭に入ってたな
ホームディレクトリにls置いたら面白いことになった
ホームディレクトリにls置いたら面白いことになった
143デフォルトの名無しさん (ワッチョイ b33c-ysFl)
2017/05/21(日) 11:36:43.59ID:p33VUuKu0 #include <stdio.h>
int main(void){
char i[100];
printf("名前を入力してね。\n");
scanf("%s",i);
printf("%sさんですね。\n",i);
return 0;
}
7行目scanf関数で、&iでなくて、iでいけるのはなぜですか?
int main(void){
char i[100];
printf("名前を入力してね。\n");
scanf("%s",i);
printf("%sさんですね。\n",i);
return 0;
}
7行目scanf関数で、&iでなくて、iでいけるのはなぜですか?
>>143
i の型はポインタ,すなわち char *i だから
i の型はポインタ,すなわち char *i だから
145デフォルトの名無しさん (ワッチョイ 9f92-cm4/)
2017/05/21(日) 11:44:04.43ID:JHzb8j250 >>142
&はアドレス演算子で、その変数がメモリ上のどのアドレスにあるかを示す
scanf関数で&を使うのは、つまり、「この変数のアドレスに読み取ったものを書き込め」という意味になる。
しかし文字列などの配列は、配列名自身が「配列の一番最初の要素へのアドレス」を示すものになっているので
配列には&が不必要
&はアドレス演算子で、その変数がメモリ上のどのアドレスにあるかを示す
scanf関数で&を使うのは、つまり、「この変数のアドレスに読み取ったものを書き込め」という意味になる。
しかし文字列などの配列は、配列名自身が「配列の一番最初の要素へのアドレス」を示すものになっているので
配列には&が不必要
146デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 12:20:22.06ID:EhbYbiNc0147デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 12:22:40.28ID:EhbYbiNc0 クズの言い方だと
float a = 1.5f;
printf("%f", a);
これが問題なく動作するから、
よって a は double 型だと言っているようなものだ
float a = 1.5f;
printf("%f", a);
これが問題なく動作するから、
よって a は double 型だと言っているようなものだ
148デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:23:47.67ID:fDsf7qWsa149デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/21(日) 12:27:36.21ID:bYtGqajI0150デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:32:18.38ID:wd4rgPA1a あ、読み込み専用ってのは値が変えられないんじゃなくて、アドレスを変えられないって意味ね。
関数に渡された配列iをi++ってするとi[a++]と同じ意味になる。
(Cでi[a++]なんて書き方許されたかは忘れたが意図は組んでくれ)
関数に渡された配列iをi++ってするとi[a++]と同じ意味になる。
(Cでi[a++]なんて書き方許されたかは忘れたが意図は組んでくれ)
151デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 12:33:01.58ID:wd4rgPA1a ポインタなら上が出来て、参照は出来ないんよ。
153デフォルトの名無しさん (ワッチョイ de1f-bwHs)
2017/05/21(日) 12:51:40.59ID:EZ567Ylh0 最近は初心者を騙すのが流行しているのか
154デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/21(日) 13:33:41.41ID:LBGUGIAq0 linuxでc言語開発したいんですが、IDE使わないのが一般的なんですか?
155デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 13:45:10.14ID:2TTm6ATPa はい。
CやJavaならEclipseが一般的かと。
Eclipseにサポートして貰ってないのはviやemacsカスタマイズしてIDEとして使う感じ。
CやJavaならEclipseが一般的かと。
Eclipseにサポートして貰ってないのはviやemacsカスタマイズしてIDEとして使う感じ。
156デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 13:45:35.47ID:2TTm6ATPa あ、はい。は忘れてw
157デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/21(日) 15:31:07.21ID:Mj8j7wxe0 >>132もおねがいします
158デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/21(日) 15:34:52.30ID:kPjNSBDr0 >>157
質問文が酷すぎて、何を聞きたいのか理解されてないだけだぞ
質問文が酷すぎて、何を聞きたいのか理解されてないだけだぞ
159デフォルトの名無しさん (ワッチョイ 9ec5-gT+F)
2017/05/21(日) 16:54:32.37ID:bYtGqajI0 >>154
最近は yacc じゃなくて何か新しいのあるんだよね。
最近は yacc じゃなくて何か新しいのあるんだよね。
160デフォルトの名無しさん (ワッチョイ ca3c-J3Da)
2017/05/21(日) 17:27:25.62ID:1Ubd4ETn0 >>159
最近じゃないけど bison とかか?
最近じゃないけど bison とかか?
161デフォルトの名無しさん (ワッチョイ aa18-JCxV)
2017/05/21(日) 17:32:24.58ID:ViqOYprV0 何でいきなり構文解析器の話になった?
162デフォルトの名無しさん (ワッチョイ cb92-a1Gw)
2017/05/21(日) 17:53:33.03ID:Qv//Z9+/0163デフォルトの名無しさん (ワッチョイ 0bae-xuou)
2017/05/21(日) 17:53:37.15ID:/ema5D/U0 c言語作るって言ってるからでしょ
164デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 17:59:27.49ID:EhbYbiNc0165デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 18:06:09.69ID:zNfd0kUpa はいはい,そりゃ配列とポインタは互換じゃないよ
分かりやすい説明はないものかね‥
分かりやすい説明はないものかね‥
168デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 19:20:07.02ID:lXB+sVuE0 %f は 引数を double 仮定で引き出す
呼び出し側は (可変長引数の可変部なので) doubleに格上げしてから引数に詰んでる
詰んでるものと引き出すものの食い違いはおきてないんじゃないかね
呼び出し側は (可変長引数の可変部なので) doubleに格上げしてから引数に詰んでる
詰んでるものと引き出すものの食い違いはおきてないんじゃないかね
170デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 19:29:57.61ID:zNfd0kUpa171デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/21(日) 19:40:24.59ID:kPjNSBDr0 配列型の"式"は、一部のケースを除いてポインタ型の式に"型変換"される、それは配列の先頭要素を指す、また左辺値でもない
関数の実引数での使用についてなら、>>147の既定の実引数拡張でfloatがdoubleに拡張(型変換)される例と同じような話だと思うんだけどな
関数の実引数での使用についてなら、>>147の既定の実引数拡張でfloatがdoubleに拡張(型変換)される例と同じような話だと思うんだけどな
172デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:10:14.64ID:zNfd0kUpa >>146
おいらはこれ、sizeofが関数じゃなくて演算子って呼ばれてるのが肝で、関数に配列渡しても何故かポインタのサイズじゃなくて配列サイズ返す謎な奴って解釈してるな。
おいらはこれ、sizeofが関数じゃなくて演算子って呼ばれてるのが肝で、関数に配列渡しても何故かポインタのサイズじゃなくて配列サイズ返す謎な奴って解釈してるな。
173デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:19:46.42ID:8VZiX6Z0a174デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 20:24:04.46ID:8VZiX6Z0a >>146
これは配列宣言した場所と同じスコープなら配列のサイズ返すけど、配列を関数に渡した先(関数の中)でこれするとポインタのサイズが返ってくる。
これは配列宣言した場所と同じスコープなら配列のサイズ返すけど、配列を関数に渡した先(関数の中)でこれするとポインタのサイズが返ってくる。
175デフォルトの名無しさん (ワッチョイ ca72-ysFl)
2017/05/21(日) 21:28:16.83ID:LBGUGIAq0 >>155
ありがとう
ありがとう
176デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 21:39:54.59ID:EhbYbiNc0 >>174
int main(void)
{
char i[100];
wanker(&i);
return 0;
}
void wanker(char (*j)[100])
{
/* ここは、「配列を関数に渡した先(関数の中)」だが? */
printf("%u", sizeof *j);
}
int main(void)
{
char i[100];
wanker(&i);
return 0;
}
void wanker(char (*j)[100])
{
/* ここは、「配列を関数に渡した先(関数の中)」だが? */
printf("%u", sizeof *j);
}
177デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 21:45:09.31ID:EhbYbiNc0178デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 21:53:31.38ID:8VZiX6Z0a179デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:00:12.54ID:EhbYbiNc0 >>178
どう無理なんだ?
int main(void)
{
int i[100];
booger(&i);
return 0;
}
void booger(int (*j)[100])
{
printf("%u", sizeof *j);
}
どう無理なんだ?
int main(void)
{
int i[100];
booger(&i);
return 0;
}
void booger(int (*j)[100])
{
printf("%u", sizeof *j);
}
180デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:02:18.84ID:lXB+sVuE0 いやいや sizeof はコンパイル時に確定する演算だから
strlen みたいにポインタの指し先追っかけてデリミタ見つかるまでのバイト数とか 実行時依存じゃない
strlen みたいにポインタの指し先追っかけてデリミタ見つかるまでのバイト数とか 実行時依存じゃない
181デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:08:35.89ID:8VZiX6Z0a182デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:10:30.59ID:lXB+sVuE0 だから sizeof は型さえ類推できれば、変数の実態なくてもいいんだって
なんなら () 付けて 型をかけばいい
なんなら () 付けて 型をかけばいい
183デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:10:36.85ID:EhbYbiNc0 176でも初期化はしてないが
184デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/21(日) 22:13:36.56ID:EhbYbiNc0185デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/21(日) 22:15:17.46ID:lXB+sVuE0186デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:39:46.18ID:fA6hmJLUa >>179
分かってきたかも。
そのコードだと
int *i;
ってポインタ宣言すると
iのままがポインタで、*iがポインタの指す中身だから。。。
配列の実体になるんだ。
もっとシンプルに初心者のやりがちな
int main(void)
{
int i[100];
booger(i[100]);
return 0;
}
void booger(int i[100])
{
printf("%u",sizeof a[100]);
}
こう言うコードだとポインタのサイズが返ってくる。
分かってきたかも。
そのコードだと
int *i;
ってポインタ宣言すると
iのままがポインタで、*iがポインタの指す中身だから。。。
配列の実体になるんだ。
もっとシンプルに初心者のやりがちな
int main(void)
{
int i[100];
booger(i[100]);
return 0;
}
void booger(int i[100])
{
printf("%u",sizeof a[100]);
}
こう言うコードだとポインタのサイズが返ってくる。
187デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:41:32.99ID:fA6hmJLUa ちゅーか十何年ぶりのCだったわ。。。
188デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/21(日) 22:44:28.27ID:fA6hmJLUa sizeof a[100]はタイポだけど許してね。
配列の変数名にiとか普通使わんのよ。
インデックス変数に使うからさ。
a[i]
配列の変数名にiとか普通使わんのよ。
インデックス変数に使うからさ。
a[i]
189デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/22(月) 06:47:21.18ID:3isejMaU0 void f(void * v, int size, void * x){
*v=*x;
}
上のコードで x の指し示す値のサイズが size であるとき
どのようにvの指し示す場所にxが指し示す値を一度に代入できますか?
*v=*x;
}
上のコードで x の指し示す値のサイズが size であるとき
どのようにvの指し示す場所にxが指し示す値を一度に代入できますか?
190デフォルトの名無しさん (ワッチョイ cb92-z8Tc)
2017/05/22(月) 07:31:20.24ID:uEzgaoxk0 memcpy(*v, *x, size);
191デフォルトの名無しさん (ワッチョイ cb92-z8Tc)
2017/05/22(月) 07:34:49.91ID:uEzgaoxk0 訂正
memcpy(v, x, size);
memcpy(v, x, size);
192デフォルトの名無しさん (ワッチョイ db8c-wnF3)
2017/05/22(月) 07:37:02.82ID:qnT1Y5yL0 >>189
学校の宿題か?
学校の宿題か?
193デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/22(月) 08:26:47.95ID:jL5+dSxZ0 for (i=0; i<size; i++) ((int8_t*)v)[i] = ((int8_t*)x)[i];
194デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 09:21:02.66ID:uUtJqX7+0 while(size--) *(char*)v++ = *(char*)x++;
195デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/22(月) 11:15:09.22ID:jL5+dSxZ0 >>194
文法エラー (v, x のインクリメント操作は void * で評価されてる)
文法エラー (v, x のインクリメント操作は void * で評価されてる)
196デフォルトの名無しさん (ドコグロ MM02-gT+F)
2017/05/22(月) 11:57:30.90ID:WXjICEY9M size の単位が何なのか分からんなぁ。
197デフォルトの名無しさん (ワッチョイ 6bd4-GzPn)
2017/05/22(月) 12:02:49.26ID:HD7uOEeF0 (`・ω・´) ?
198デフォルトの名無しさん (ワッチョイ d3fa-ysFl)
2017/05/22(月) 12:44:29.59ID:+BU32a3i0 最近はCMakeを使うのが普通なの?
GNU Make覚える必要があるかな
話変わるけど、MakeFileってソース1つ追加するたびに、変更する必要がある?
GNU Make覚える必要があるかな
話変わるけど、MakeFileってソース1つ追加するたびに、変更する必要がある?
199デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 13:11:20.22ID:uUtJqX7+0200デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/22(月) 13:14:30.22ID:jL5+dSxZ0 >>199
あー コンパイルエラーと言えばよかったかw
あー コンパイルエラーと言えばよかったかw
201デフォルトの名無しさん (ワッチョイ cb92-a1Gw)
2017/05/22(月) 13:14:54.60ID:CEFnqLB20 Makefileを作らなくてもmake出来るケースがある事を最近は知らない奴が多い
202デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 17:02:12.42ID:uUtJqX7+0 cc love.c じゃなく
make love でいい件か?
make love でいい件か?
203デフォルトの名無しさん (ドコグロ MM02-R0co)
2017/05/22(月) 19:00:44.22ID:J9ejs7e9M makeのデフォルトルールだね
.c.o はよく使う
.c.o はよく使う
204デフォルトの名無しさん (ブーイモ MMea-ysFl)
2017/05/22(月) 19:41:32.06ID:h9CxmUP8M >>201
まじか、知らなかった
まじか、知らなかった
205デフォルトの名無しさん (ワッチョイ b33c-8vqE)
2017/05/22(月) 19:45:14.71ID:yWHDUG7V0 作って覚えるVisual C#のようなゴールを設定して色々学ぶC言語の書籍はありますか?
206デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 20:02:28.46ID:uUtJqX7+0 便利にゃ違いないけど
ロクに指示も与えずよきに計らえってスタンスで
何が出来てくるのかに受動的でいることに
俺は我慢できないな
無関心な大将を有能な部下がフォローして事なきを得たってことだろ
ロクに指示も与えずよきに計らえってスタンスで
何が出来てくるのかに受動的でいることに
俺は我慢できないな
無関心な大将を有能な部下がフォローして事なきを得たってことだろ
207デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 20:02:58.11ID:uUtJqX7+0 だからスタックサイズのデフォも知らない馬鹿が大量発生するわけだし
>>195
(void *)c++ は1だけインクリメントされる,c99 では規格で決まっている
(void *)c++ は1だけインクリメントされる,c99 では規格で決まっている
210デフォルトの名無しさん (ワッチョイ ffdf-S7GU)
2017/05/22(月) 20:15:17.89ID:5FlvGyv/0 *vがsize分確保されてないんじゃね?
普通こうだよな
void f(void ** v, int size, void * x)
普通こうだよな
void f(void ** v, int size, void * x)
211デフォルトの名無しさん (ワッチョイ 6b3c-kvD5)
2017/05/22(月) 20:16:31.52ID:2o5iWMtc0 >>208
しらなんだ C99 からなのかね
しらなんだ C99 からなのかね
212デフォルトの名無しさん (ワッチョイ 67a3-4oUF)
2017/05/22(月) 21:22:47.69ID:d/63nSXI0 voidがサイズ持ってるとか無理やり過ぎ
便利だけど
便利だけど
213デフォルトの名無しさん (ワッチョイ 0fa5-btfr)
2017/05/22(月) 21:22:49.29ID:lKEcPOEA0 >>208,209
うそつき
うそつき
214デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/22(月) 21:31:07.71ID:oluY6epY0 1になるのはgcc拡張だろ
215デフォルトの名無しさん (ワッチョイ 9e0d-Yh7p)
2017/05/22(月) 21:42:16.48ID:uUtJqX7+0 そういうオチか
ばかたれぃっ!!
ばかたれぃっ!!
216デフォルトの名無しさん (ワッチョイ 0bae-xuou)
2017/05/22(月) 23:25:56.35ID:klirxPDR0 息をするように嘘をつかれた
>>214
C99 からガチで
C99 からガチで
218デフォルトの名無しさん (ワッチョイ 07cd-d60Q)
2017/05/23(火) 09:00:04.50ID:BTD2Lf690 >>208-209>>217
C99規格には「(void *)c++ は1だけインクリメントされる」という規定はない。
C99規格書(ISO/IEC 9899)は英語なのでそれを元にしたJIS X3010で説明する。
X3010は章番号を変えてないのでISO/IEC 9899の該当文章は自分で確認してくれ。
ISO/IEC 9899:TC2
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf
JIS X3010
http://kikakurui.com/x3/X3010-2003-01.html
> 6.2.5 型
> 型は,オブジェクト型(オブジェクトを完全に規定する型),関数型(関数を規定する型),
>及び不完全型(その大きさを確定するのに必要な情報が欠けたもの)に分類する。
> void型の値の集合は空とする。それは,完全にすることのできない不完全型とする。
> void へのポインタは,文字型へのポインタと
> 同じ表現及び同じ境界調整要求をもたなければならない。
voidは不完全型だがvoid*はオブジェクト型でchar*と相互に代入可能だ。
> 6.5.3.4 sizeof 演算子
> sizeof演算子は,関数型若しくは不完全型をもつ式,それらの型の名前を括弧で
> 囲んだもの,又はビットフィールドメンバを指し示す式に対して適用してはならない。
> 型char,unsigned char若しくはsigned char(又はそれらの修飾版)をもつ
> オペランドに適用した場合の結果は,1 とする。
不完全型であるvoidにはsizeofを適用できない。
char派生はサイズ1と明確に規定されているがvoidのサイズは規定がない。
だから(void *)c++が元の値のままでもC99規格違反ではない。
C99規格には「(void *)c++ は1だけインクリメントされる」という規定はない。
C99規格書(ISO/IEC 9899)は英語なのでそれを元にしたJIS X3010で説明する。
X3010は章番号を変えてないのでISO/IEC 9899の該当文章は自分で確認してくれ。
ISO/IEC 9899:TC2
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf
JIS X3010
http://kikakurui.com/x3/X3010-2003-01.html
> 6.2.5 型
> 型は,オブジェクト型(オブジェクトを完全に規定する型),関数型(関数を規定する型),
>及び不完全型(その大きさを確定するのに必要な情報が欠けたもの)に分類する。
> void型の値の集合は空とする。それは,完全にすることのできない不完全型とする。
> void へのポインタは,文字型へのポインタと
> 同じ表現及び同じ境界調整要求をもたなければならない。
voidは不完全型だがvoid*はオブジェクト型でchar*と相互に代入可能だ。
> 6.5.3.4 sizeof 演算子
> sizeof演算子は,関数型若しくは不完全型をもつ式,それらの型の名前を括弧で
> 囲んだもの,又はビットフィールドメンバを指し示す式に対して適用してはならない。
> 型char,unsigned char若しくはsigned char(又はそれらの修飾版)をもつ
> オペランドに適用した場合の結果は,1 とする。
不完全型であるvoidにはsizeofを適用できない。
char派生はサイズ1と明確に規定されているがvoidのサイズは規定がない。
だから(void *)c++が元の値のままでもC99規格違反ではない。
219デフォルトの名無しさん (ドコグロ MM02-gT+F)
2017/05/23(火) 09:33:11.13ID:6xCmSTo3M220デフォルトの名無しさん (ブーイモ MMea-2zar)
2017/05/23(火) 09:47:33.99ID:Mt8tSRb/M >>219
サイズ1ってどこからわかるの?
サイズ1ってどこからわかるの?
221デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/23(火) 11:13:27.58ID:ufwaINxg0 ウンコQz得意の炎上学習法か
とっとと死ねよ
とっとと死ねよ
222デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/23(火) 11:24:40.32ID:ufwaINxg0 >>218
ポインタの算術演算なので参照するところが違う
6.5.6-2の定義で加算可能なポインタは「オブジェクトへのポインタ」であり、
void *はキミが引用した6.2.5によりこの条件を満たさない 従ってQzはうんこ 今すぐ死ね
6.5.6 Additive operators
2 For addition, either both operands shall have arithmetic type,
or one operand shall be a pointer to an object type and the other shall have integer type. (Incrementing is equivalent to adding 1.)
ポインタの算術演算なので参照するところが違う
6.5.6-2の定義で加算可能なポインタは「オブジェクトへのポインタ」であり、
void *はキミが引用した6.2.5によりこの条件を満たさない 従ってQzはうんこ 今すぐ死ね
6.5.6 Additive operators
2 For addition, either both operands shall have arithmetic type,
or one operand shall be a pointer to an object type and the other shall have integer type. (Incrementing is equivalent to adding 1.)
223デフォルトの名無しさん (ワッチョイ de1f-bwHs)
2017/05/23(火) 11:31:22.03ID:YiZYoA3+0 規格のどこかにあったはず
224デフォルトの名無しさん (ワッチョイ 1bc8-kvD5)
2017/05/23(火) 11:45:51.13ID:ENsR+rXL0 おいQZ都合悪くなったら自演で叩きかよ
おまえもうム板に向いてないから一人でコードオナニーしてろよ
おまえもうム板に向いてないから一人でコードオナニーしてろよ
227デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/23(火) 12:38:56.50ID:fCVURflQ0 配置アドレスのアライメント要求が等しいのと
アドレスの算術演算で同じ結果になるのは別じゃ?
アドレスの算術演算で同じ結果になるのは別じゃ?
228デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/23(火) 12:50:27.27ID:ufwaINxg0 このバカは
https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Pointer-Arith.html#Pointer-Arith
すら読まずに、C99 からガチでキリッ
とか言ってんのか
死ね死ね死ね今すぐ死ね
https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Pointer-Arith.html#Pointer-Arith
すら読まずに、C99 からガチでキリッ
とか言ってんのか
死ね死ね死ね今すぐ死ね
229デフォルトの名無しさん (ワッチョイ 03b9-PZTw)
2017/05/23(火) 12:57:12.80ID:fCVURflQ0 ideone の C99 でも(同じwarninngで)文句言ってるな
https://ideone.com/fDNXlH
https://ideone.com/fDNXlH
230デフォルトの名無しさん (ワッチョイ 07cd-d60Q)
2017/05/23(火) 13:03:46.65ID:BTD2Lf690231デフォルトの名無しさん (ワッチョイ b33c-7Hrf)
2017/05/23(火) 15:16:25.17ID:Eouhg5rk0 gccでも-pedanticオプションを使えばgcc拡張を警告するぞ
-std=c99オプションに頼るな
gcc-8の警告文
warning: wrong type argument to increment [-Wpointer-arith]
clang-5の警告文
warning: arithmetic on a pointer to void is a GNU extension [-Wpointer-arith]
-std=c99オプションに頼るな
gcc-8の警告文
warning: wrong type argument to increment [-Wpointer-arith]
clang-5の警告文
warning: arithmetic on a pointer to void is a GNU extension [-Wpointer-arith]
232デフォルトの名無しさん (ワッチョイ 1bc8-kvD5)
2017/05/23(火) 17:10:14.54ID:ENsR+rXL0 QZ怒りの暴走
233デフォルトの名無しさん (アウアウカー Sacb-W7a5)
2017/05/23(火) 17:50:06.75ID:YSxby3lha >>225
char型へのポインタ型のオブジェクトとvoid型へのポインタ型のオブジェクトが同じ境界調整を持つという規格が
なぜchar型のオブジェクトとvoid型のオブジェクトが同じサイズという話になるの?
char型へのポインタ型のオブジェクトとvoid型へのポインタ型のオブジェクトが同じ境界調整を持つという規格が
なぜchar型のオブジェクトとvoid型のオブジェクトが同じサイズという話になるの?
234デフォルトの名無しさん (ワッチョイ 1b35-mR0Q)
2017/05/23(火) 18:08:28.42ID:F0rvxaiH0235デフォルトの名無しさん (アウアウカー Sacb-W7a5)
2017/05/23(火) 18:17:27.01ID:YSxby3lha236デフォルトの名無しさん (アウアウカー Sacb-W7a5)
2017/05/23(火) 18:22:45.88ID:YSxby3lha237デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/23(火) 18:32:25.29ID:ufwaINxg0238デフォルトの名無しさん (ワッチョイ 1b35-mR0Q)
2017/05/23(火) 18:40:44.02ID:F0rvxaiH0 >>235
該当部分を読むと
JIS 6.2.5
>void へのポインタは,文字型へのポインタと同じ表現及び同じ境界調整要求をもたなければならない ( 39 ) 。
>同様に,適合する型へのポインタ同士の場合,修飾版であるか又は非修飾版であるか(const とかのことby QZ) にかかわらず,
>同じ表現及び同じ境界調整要求をもたなければならない。
>構造体型へのポインタは,すべて同じ表現及び 同じ境界調整要求をもたなければならない。
>共用体型へのポインタは,すべて同じ表現及び同じ境界調整 要求をもたなければならない。
>これ以外の型へのポインタは,同じ表現又は同じ境界調整要求をもつ必要はない。
これを読んで感じるのは、つまりポインタ自身の表現やアラインメントを、いろいろ細分化する実装を思いつかない
far とか near とかでもなさそうだ。
細分化するとすればむしろポインタが指す先に関することではないだろうか?
>>236
え?-Wall って全部だすんじゃなかったんですかね。たぶん勘違いしていると思う。
該当部分を読むと
JIS 6.2.5
>void へのポインタは,文字型へのポインタと同じ表現及び同じ境界調整要求をもたなければならない ( 39 ) 。
>同様に,適合する型へのポインタ同士の場合,修飾版であるか又は非修飾版であるか(const とかのことby QZ) にかかわらず,
>同じ表現及び同じ境界調整要求をもたなければならない。
>構造体型へのポインタは,すべて同じ表現及び 同じ境界調整要求をもたなければならない。
>共用体型へのポインタは,すべて同じ表現及び同じ境界調整 要求をもたなければならない。
>これ以外の型へのポインタは,同じ表現又は同じ境界調整要求をもつ必要はない。
これを読んで感じるのは、つまりポインタ自身の表現やアラインメントを、いろいろ細分化する実装を思いつかない
far とか near とかでもなさそうだ。
細分化するとすればむしろポインタが指す先に関することではないだろうか?
>>236
え?-Wall って全部だすんじゃなかったんですかね。たぶん勘違いしていると思う。
239デフォルトの名無しさん (ワッチョイ cac8-amUu)
2017/05/23(火) 18:40:46.39ID:wffizmnr0 汎用ポインタのインクリメントは、
エラーが出るか1進むかだろう。
エラーが出るか1進むかだろう。
240デフォルトの名無しさん (ワッチョイ 9e28-Yh7p)
2017/05/23(火) 18:41:11.96ID:7CxjD8/v0 >>235
境界調整が同じでもサイズの違うオブジェクトへのポインタはあるだろ
char *a, (*b)[2];
K&R C では char* でよかった用途に、
なぜ、わざわざ void* を持ち込んだのか考えてみれ
サイズが 1 なのが気持ち悪くて、
サイズが不明ということにするためだろうが
この期に及んで void* が指す先のサイズが 1 とか言い出す
どスカタンがもしいたら死刑でいい話だぞ
境界調整が同じでもサイズの違うオブジェクトへのポインタはあるだろ
char *a, (*b)[2];
K&R C では char* でよかった用途に、
なぜ、わざわざ void* を持ち込んだのか考えてみれ
サイズが 1 なのが気持ち悪くて、
サイズが不明ということにするためだろうが
この期に及んで void* が指す先のサイズが 1 とか言い出す
どスカタンがもしいたら死刑でいい話だぞ
241デフォルトの名無しさん (アウアウカー Sacb-W7a5)
2017/05/23(火) 18:46:38.37ID:YSxby3lha242デフォルトの名無しさん (ワッチョイ 1b35-mR0Q)
2017/05/23(火) 18:53:09.03ID:F0rvxaiH0244デフォルトの名無しさん (ワッチョイ ffdf-S7GU)
2017/05/23(火) 18:57:52.22ID:07biNjOo0 >>242
何言ってんの?
何言ってんの?
245デフォルトの名無しさん (ワッチョイ 9e28-Yh7p)
2017/05/23(火) 19:00:42.38ID:7CxjD8/v0 >>244
void *memmove(void *dst, const void *src, unsigned n);
void *memcpy(void *dst, const void *src, unsigned n);
にて char * ではなく void * になっている理由はなにか?
void *memmove(void *dst, const void *src, unsigned n);
void *memcpy(void *dst, const void *src, unsigned n);
にて char * ではなく void * になっている理由はなにか?
247デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/23(火) 19:09:35.34ID:ufwaINxg0 >>240
いや第一目的は、全ての型へのポインタと互換(キャストなしで変換できる)なポインタが欲しかったのだ
いや第一目的は、全ての型へのポインタと互換(キャストなしで変換できる)なポインタが欲しかったのだ
248デフォルトの名無しさん (ワッチョイ ffdf-S7GU)
2017/05/23(火) 19:17:52.52ID:07biNjOo0 >>246
汎用なのになんでstring.hかと思ったことはある
汎用なのになんでstring.hかと思ったことはある
249デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/23(火) 19:31:53.76ID:ZdN5y2SH0 >>238
Wallは全ての警告が有効になるわけではない
https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#index-Wall
> これを読んで感じるのは、つまりポインタ自身の表現やアラインメントを、いろいろ細分化する実装を思いつかない
> far とか near とかでもなさそうだ。
> 細分化するとすればむしろポインタが指す先に関することではないだろうか?
思いつかないなら、同じにすれば良いだけでしょ
そこからなぜ「同じ表現」はポインタの話なのに、「同じ境界調整要求」はポインタの先のオブジェクトの話になるの?
>構造体型へのポインタは,すべて同じ表現及び 同じ境界調整要求をもたなければならない。
>共用体型へのポインタは,すべて同じ表現及び同じ境界調整 要求をもたなければならない。
構造体/共用体型のオブジェクトが等しい境界調整要求を持つほうが非現実的でしょ
Wallは全ての警告が有効になるわけではない
https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#index-Wall
> これを読んで感じるのは、つまりポインタ自身の表現やアラインメントを、いろいろ細分化する実装を思いつかない
> far とか near とかでもなさそうだ。
> 細分化するとすればむしろポインタが指す先に関することではないだろうか?
思いつかないなら、同じにすれば良いだけでしょ
そこからなぜ「同じ表現」はポインタの話なのに、「同じ境界調整要求」はポインタの先のオブジェクトの話になるの?
>構造体型へのポインタは,すべて同じ表現及び 同じ境界調整要求をもたなければならない。
>共用体型へのポインタは,すべて同じ表現及び同じ境界調整 要求をもたなければならない。
構造体/共用体型のオブジェクトが等しい境界調整要求を持つほうが非現実的でしょ
250デフォルトの名無しさん (ワッチョイ 9e28-Yh7p)
2017/05/23(火) 22:10:38.61ID:7CxjD8/v0251デフォルトの名無しさん (ワッチョイ 9e28-Yh7p)
2017/05/23(火) 22:57:03.61ID:7CxjD8/v0 >>246
バス幅が8bitでないハードでもったいないことしないためだろ
バス幅が8bitでないハードでもったいないことしないためだろ
252デフォルトの名無しさん (ワッチョイ afcd-cm4/)
2017/05/23(火) 23:35:41.22ID:ZdN5y2SH0 >>238の通りQZは「構造体型のオブジェクトが全て同じ境界調整要求をもつ」と主張してるからな
この世に存在する大多数のコンパイラが規格に準拠していないという新説を主張しているぐらいだら
QZの脳内には、余人には考えつかない理屈があるんだろ
この世に存在する大多数のコンパイラが規格に準拠していないという新説を主張しているぐらいだら
QZの脳内には、余人には考えつかない理屈があるんだろ
253デフォルトの名無しさん (ワッチョイ 1bc8-kvD5)
2017/05/24(水) 03:30:23.68ID:lEIYBmmJ0 QZはサイコ自演厨
くりかえすQZはサイコ自演厨
くりかえすQZはサイコ自演厨
254デフォルトの名無しさん (ドコグロ MM02-R0co)
2017/05/24(水) 13:17:30.92ID:spHSYyT3M255デフォルトの名無しさん (エーイモ SE8a-9r6K)
2017/05/24(水) 15:28:53.02ID:QjzRyjLLE すいませんこのスレにワッチョイを導入した経緯ってなんですか?
256デフォルトの名無しさん (ワッチョイ 9e7c-Yh7p)
2017/05/24(水) 18:24:04.77ID:yvqQkV490257デフォルトの名無しさん (ワッチョイ dea9-ysFl)
2017/05/24(水) 18:28:35.29ID:UdPLjxGk0 cuda Cコンパイラーは
void*型からの代入にキャストが無いとエラーになる
多分MSのcl使ってるからそうなる
void*型からの代入にキャストが無いとエラーになる
多分MSのcl使ってるからそうなる
258デフォルトの名無しさん (ワッチョイ 9e7c-Yh7p)
2017/05/24(水) 18:36:39.06ID:yvqQkV490259デフォルトの名無しさん (ササクッテロロ Sp03-4D2f)
2017/05/24(水) 19:26:19.45ID:E7SQQ2iip PStructA pstA[10];
に対して
&pstA[1] と pstA+1 は同じ一番目のポインタを返すという認識で合ってるでしょうか?
ポインタ演算と配列の違いが腑に落ちてないです
に対して
&pstA[1] と pstA+1 は同じ一番目のポインタを返すという認識で合ってるでしょうか?
ポインタ演算と配列の違いが腑に落ちてないです
260デフォルトの名無しさん (ワッチョイ 6b00-Gjiu)
2017/05/24(水) 19:45:56.66ID:L7sKwR/z0 アドレス取得が後か先かの違いじゃない?
あんまり深く考えるとハゲるよ
あんまり深く考えるとハゲるよ
261デフォルトの名無しさん (ワッチョイ cb92-UOaC)
2017/05/24(水) 19:50:38.77ID:/WrwABBj0 >>250
逆ができたか? できなかったと記憶してるが
逆ができたか? できなかったと記憶してるが
262デフォルトの名無しさん (ワッチョイ cb7b-kvD5)
2017/05/24(水) 20:44:36.72ID:tHoyeV8z0 NVIDIAのOpenCLコンパイラはvoid*を演算するコードをコンパイルしようとすると落ちる。
263デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
2017/05/25(木) 10:12:33.17ID:NxjYanVn0264デフォルトの名無しさん (ワッチョイ 0fa9-waVG)
2017/05/25(木) 10:14:55.51ID:PLr2HWak0 for(int i=0;i<a+3;++i)
でaがループの中で使われなくても毎回計算されなおしますか?
でaがループの中で使われなくても毎回計算されなおしますか?
265デフォルトの名無しさん (アウアウエー Sa3f-0req)
2017/05/25(木) 10:50:22.52ID:jD8c7u6va され直す。
266デフォルトの名無しさん (ワッチョイ 4ff3-9J/J)
2017/05/25(木) 11:11:35.32ID:1r4kIkVY0267デフォルトの名無しさん (アウアウエー Sa3f-0req)
2017/05/25(木) 11:25:49.00ID:jD8c7u6va そうか、最適化で定数になってる可能性が高いな。
268デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/25(木) 12:50:12.06ID:0WgUeo5I0269デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
2017/05/25(木) 14:30:16.20ID:NxjYanVn0 落ち着けよ
代入と関数原型は関係ないし
格助詞がふじこってるぞ
代入と関数原型は関係ないし
格助詞がふじこってるぞ
270デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/25(木) 15:03:16.39ID:0WgUeo5I0 わざとそのように誤読したがるのはわかるが
> 関数呼び出し時の検査は関数プロトタイプがないのでできなかった
だな、編集ミスだ
> 関数呼び出し時の検査は関数プロトタイプがないのでできなかった
だな、編集ミスだ
271デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
2017/05/25(木) 15:59:46.97ID:NxjYanVn0 いや、だから代入と関数原型は関係ねえってば
代入が関数なのはC++だぞ
代入が関数なのはC++だぞ
272デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/25(木) 19:12:03.32ID:0WgUeo5I0 代入と関数呼び出しで型検査が必要になった
関係大あり
関係大あり
273デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
2017/05/25(木) 21:47:16.88ID:NxjYanVn0 代入には型検査がもともとあった
double a = 1.5;
int b;
b = a;
b には (int)a の値が正しく代入され
決して a の bit63-32 が切り裂きコピーされることはない
double a = 1.5;
int b;
b = a;
b には (int)a の値が正しく代入され
決して a の bit63-32 が切り裂きコピーされることはない
274デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/25(木) 23:12:03.91ID:0WgUeo5I0275デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/26(金) 01:40:06.53ID:SIwotEYO0 またQZが自演を始めたよ
276デフォルトの名無しさん (ワッチョイ 0fa9-waVG)
2017/05/26(金) 05:57:05.69ID:gxtuHd510 -Wshift-op-parentheses
これを守ろうとすると括弧だらけでコードが糞になるから切ることにするよ
これを守ろうとすると括弧だらけでコードが糞になるから切ることにするよ
277デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 08:18:33.58ID:IXNjZ2pR0 >>276
ifの条件節に代入を直接書けないのもうざいな
ifの条件節に代入を直接書けないのもうざいな
278デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 09:57:19.90ID:qaraDccl0279デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 10:14:22.69ID:IXNjZ2pR0280デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 11:12:11.70ID:qaraDccl0281デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 11:15:48.33ID:IXNjZ2pR0 >>280
アホウ ANSI-Cでの型検査の話だ
アホウ ANSI-Cでの型検査の話だ
282デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 11:33:23.33ID:qaraDccl0283デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 13:06:41.64ID:IXNjZ2pR0 アホウ ポインタの型検査が規格になったのはANSI-Cだ
> K&R C では char* でよかった用途に、
> なぜ、わざわざ void* を持ち込んだのか考えてみれ
> サイズが 1 なのが気持ち悪くて、
> サイズが不明ということにするためだろうが
このバカ(お前?)が決定的に間違ってる
void*が必要になったのはポインタ型検査に伴い発生する不都合を解消するためだ
それがあらゆる型へのポインタと互角なポインタであり、その役割をvoid *に割り当てた
> K&R C では char* でよかった用途に、
> なぜ、わざわざ void* を持ち込んだのか考えてみれ
> サイズが 1 なのが気持ち悪くて、
> サイズが不明ということにするためだろうが
このバカ(お前?)が決定的に間違ってる
void*が必要になったのはポインタ型検査に伴い発生する不都合を解消するためだ
それがあらゆる型へのポインタと互角なポインタであり、その役割をvoid *に割り当てた
284デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 15:24:42.21ID:qaraDccl0285デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 18:45:52.60ID:IXNjZ2pR0286デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/26(金) 18:54:11.28ID:IXNjZ2pR0 ここの文脈では相互に変換できるポインタを「互換」と呼んだ
A pointer to void may be converted to or from a pointer to any incomplete or object type.
A pointer to void may be converted to or from a pointer to any incomplete or object type.
287デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/26(金) 19:53:13.29ID:SIwotEYO0 きえろQZ!
288デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 22:00:35.72ID:qaraDccl0290デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/26(金) 22:06:47.38ID:qaraDccl0 K&R1はCの元々のコンセプトを純粋に美しく語っているもので
これに嫌悪感を持ったり無関心な者はCの本質を知らないのではなく解りたくない者で
去る者は拒まずの消極的破門でいい
これに嫌悪感を持ったり無関心な者はCの本質を知らないのではなく解りたくない者で
去る者は拒まずの消極的破門でいい
291デフォルトの名無しさん (ワッチョイ 5ba3-5Zsd)
2017/05/26(金) 22:14:56.87ID:efrj6x/y0292デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/27(土) 00:26:52.71ID:XzB/9PvX0293デフォルトの名無しさん (ワッチョイ 7bf9-OpMt)
2017/05/27(土) 06:58:12.92ID:ucevWPfX0294デフォルトの名無しさん (ワッチョイ 8b92-6MgW)
2017/05/27(土) 12:56:06.47ID:XzB/9PvX0 ANSI-CはK&Rで書かれたソースがそのままコンパイルできるように作られたので、エラーではなく警告にしたのは当たり前だ
バカすぎるぞ お前
バカすぎるぞ お前
295デフォルトの名無しさん (ワッチョイ 4b35-+I1J)
2017/05/27(土) 15:45:49.87ID:4RTqTK2k0296デフォルトの名無しさん (ワッチョイ 4b35-+I1J)
2017/05/27(土) 15:46:27.40ID:4RTqTK2k0297デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/27(土) 19:48:36.25ID:bhlzwwxY0 QZ怒りの自演がバレるwwww
298デフォルトの名無しさん (ワッチョイ 5ba3-5Zsd)
2017/05/27(土) 20:24:35.80ID:jOh20AuV0 voidポインタでもキャストしてるわw
299デフォルトの名無しさん (ワッチョイ 4b92-9J81)
2017/05/27(土) 22:37:43.80ID:y4s2F+UB0 freeの戻り値って普通キャストしていたよね
300デフォルトの名無しさん (ワッチョイ 0bd4-+I1J)
2017/05/27(土) 23:30:24.62ID:3hOJokwS0 (*´ω`*)?
301デフォルトの名無しさん (ワッチョイ 7bdf-NE6z)
2017/05/27(土) 23:45:53.19ID:vBffp2jh0 (* ͡° ͜ʖ ͡°*)=3
302デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
2017/05/28(日) 07:21:49.29ID:cMxKlmAA0 >>294
ほらな、警告とは何かがわかってない
X3.159-1989ではエラーも警告も定義していない
それらは特定のコンパイラ製品の挙動だ
特定のコンパイラにdisられたら
自分が悪いんだろうとしか思えない
ど初心者の心理からいつまで経っても
卒業できないポンコツPG乙
ほらな、警告とは何かがわかってない
X3.159-1989ではエラーも警告も定義していない
それらは特定のコンパイラ製品の挙動だ
特定のコンパイラにdisられたら
自分が悪いんだろうとしか思えない
ど初心者の心理からいつまで経っても
卒業できないポンコツPG乙
303デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/28(日) 20:40:53.29ID:5m3UytZ+0 さあQZが自演するぞ
304デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/28(日) 20:44:17.90ID:5m3UytZ+0 ゴミ無職QZのクソコード自演は本当に気持ち悪い
305デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
2017/05/28(日) 21:50:21.98ID:HrcHJfqb0 >>299
いつの時代のfreeは値返したの?
いつの時代のfreeは値返したの?
306デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
2017/05/28(日) 21:54:08.04ID:QPUrPhGM0 ANSI C以外を語るじじいが居座るスレかよw
307デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
2017/05/28(日) 21:55:27.91ID:cMxKlmAA0 K&Rにはvoidがなく返却値の型を省略すればintと見なされた
returnがないか空のreturn;は不定を返した
これだけ言えばわかるな?
returnがないか空のreturn;は不定を返した
これだけ言えばわかるな?
308デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
2017/05/28(日) 22:01:09.82ID:QPUrPhGM0 C言語はUNIXの仕様が前提だから、そこまで含めて移植しなかったから混乱した。
309デフォルトの名無しさん (ワッチョイ 0f1f-yauO)
2017/05/28(日) 22:04:17.46ID:VrUpCcMk0 (void)free(ptr) ?
310デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
2017/05/28(日) 22:10:09.67ID:HrcHJfqb0311デフォルトの名無しさん (ワッチョイ 9f3c-ijLw)
2017/05/28(日) 22:37:19.96ID:7TA+N7360 >>307
でvoidもないのに何にキャストしてたって? w
でvoidもないのに何にキャストしてたって? w
312デフォルトの名無しさん (ワンミングク MMbf-9J81)
2017/05/28(日) 23:16:58.78ID:KL+xXoJsM 只の釣りだな
313デフォルトの名無しさん (ワッチョイ 6b3c-1Z4F)
2017/05/29(月) 01:09:58.10ID:lyV0c6X20314デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
2017/05/29(月) 01:16:09.85ID:j0cmL5ae0 返却値と返り値で、何が違うの?
確かに返却値って言葉はあまり使わない気がするけど、そんなこだわるほどのもん?
確かに返却値って言葉はあまり使わない気がするけど、そんなこだわるほどのもん?
315デフォルトの名無しさん (ワッチョイ dfd4-9J/J)
2017/05/29(月) 01:17:52.13ID:zS+u+zXg0 排泄値にしよう
316デフォルトの名無しさん (ワッチョイ 6b3c-1Z4F)
2017/05/29(月) 01:27:03.01ID:lyV0c6X20317デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
2017/05/29(月) 01:53:50.29ID:j0cmL5ae0 >>316
その君の言うところの意味が、「返す」と何が違うの?って話。
「返す」を大辞林で引いたら一番目の意味に「返却」と書いてある事実をどう考える?
所詮その程度の主観的な印象に過ぎない物を、人に押し付けられても…
まあ、2chだし、言うのも勝手か。
その君の言うところの意味が、「返す」と何が違うの?って話。
「返す」を大辞林で引いたら一番目の意味に「返却」と書いてある事実をどう考える?
所詮その程度の主観的な印象に過ぎない物を、人に押し付けられても…
まあ、2chだし、言うのも勝手か。
318デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
2017/05/29(月) 02:14:29.26ID:JtPPrjAE0 >>317
返すの意味の一つに返却があるというだけでイコールでは無いと思うけどね。
例えば”上げる”とか辞書引いたら色んな意味が載ってて一番目に載ってる意味と関連するわけではないということは解るよね。
返すの意味の一つに返却があるというだけでイコールでは無いと思うけどね。
例えば”上げる”とか辞書引いたら色んな意味が載ってて一番目に載ってる意味と関連するわけではないということは解るよね。
319デフォルトの名無しさん (ワッチョイ 6b3c-1Z4F)
2017/05/29(月) 02:20:02.64ID:lyV0c6X20320デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
2017/05/29(月) 05:18:14.60ID:6wk42oha0321デフォルトの名無しさん (ワッチョイ 4b92-9J81)
2017/05/29(月) 06:20:41.78ID:RCqUfmRt0 >>313
スプラッターな言語やね
スプラッターな言語やね
322デフォルトの名無しさん (ワッチョイ 6b3c-yauO)
2017/05/29(月) 06:24:13.95ID:KA+g5PFR0 $$$4.3$$$
"V"="1.3335412","0","1","3Q",
"V"="1.3335412","0","1","3Q",
323デフォルトの名無しさん (ワッチョイ fbc2-H0kE)
2017/05/29(月) 07:45:45.57ID:cJoa6MEM0 >>320
石炭でも掘るのかよ?
石炭でも掘るのかよ?
324デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
2017/05/29(月) 09:05:50.24ID:j0cmL5ae0 >>319
おかしくないと思うけど?
おかしくないと思うけど?
325デフォルトの名無しさん (ワッチョイ 0b3c-9J/J)
2017/05/29(月) 09:08:17.15ID:m6wef0Zf0 釣り銭がでてくる所は返却口って呼称してることが多いが まぁ
326デフォルトの名無しさん (ワッチョイ fb92-+OTu)
2017/05/29(月) 09:15:26.79ID:kbe0Kudi0 まさかと思って調べてみれば JIS X3010 では本当に返却値になっているんだな
327デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/29(月) 09:38:12.28ID:5HzXgXAz0 おいQZそれ以上発狂するな
お前の無知がバレるぞ
お前の無知がバレるぞ
328デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
2017/05/29(月) 09:40:08.06ID:3z87Obs+0 ここまで「却」という漢字の調べた者なしw
「却」の意味は答えると「返却値」はおかしいが、英語でReturnと言ってるので返却と翻訳したのだろう。
「却」の意味は答えると「返却値」はおかしいが、英語でReturnと言ってるので返却と翻訳したのだろう。
329デフォルトの名無しさん (ワッチョイ 0b28-XnC7)
2017/05/29(月) 10:07:07.99ID:h1ztVJLm0 返すのは制御で、その時に渡す値くらいに思ってたな
330age (ワッチョイ db8d-InMg)
2017/05/29(月) 11:00:15.37ID:T5H0S0Nm0 Windows環境のHANDLE型について教えて下さい。
Windows10/64環境下とWindows7/64環境ではHANDLE型の扱いは異なるのでしょうか?
HANDLE型が使用できない処理系の為に
HANDLE型を返すWindowsのAPIにラッパする形でHANDLE型を整数(unsigned long)にキャストするDLLを作成し、
HANDLE型が使用できない処理系から作成したDLLを通して目的のAPIを使用していました。
Windows7の32/64ビット環境では動作しているのですが、
Windows10の64ビットでは動作しません。
(Windows10/32ビットでは動作しています。)
Windows10/64環境下とWindows7/64環境ではHANDLE型の扱いは異なるのでしょうか?
HANDLE型が使用できない処理系の為に
HANDLE型を返すWindowsのAPIにラッパする形でHANDLE型を整数(unsigned long)にキャストするDLLを作成し、
HANDLE型が使用できない処理系から作成したDLLを通して目的のAPIを使用していました。
Windows7の32/64ビット環境では動作しているのですが、
Windows10の64ビットでは動作しません。
(Windows10/32ビットでは動作しています。)
331デフォルトの名無しさん (ワッチョイ 5ba3-5Zsd)
2017/05/29(月) 11:13:27.19ID:TgEUVyWp0 戻り値を捨てるときはvoidにキャストしてるな
332デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
2017/05/29(月) 11:27:00.44ID:JtPPrjAE0 >>330
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
HANDLEはPVOID
PVOIDはvoid*
つまり64bitのWindowsアプリケーション(LLP64環境)では64bit 同環境でunsigned longは32bit
つまりWindows7ではたまたま動いてるだけ。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
HANDLEはPVOID
PVOIDはvoid*
つまり64bitのWindowsアプリケーション(LLP64環境)では64bit 同環境でunsigned longは32bit
つまりWindows7ではたまたま動いてるだけ。
333デフォルトの名無しさん (アウアウアー Sa7f-+G4n)
2017/05/29(月) 13:16:39.33ID:6ZDN/iGxa >>330
Windows SDKの話をここでするなというやつがいるから、Windows SDKスレを探したらないんだなw
Windows SDKの話をここでするなというやつがいるから、Windows SDKスレを探したらないんだなw
334653 (ワッチョイ 9f0b-calu)
2017/05/29(月) 13:22:41.71ID:BOg3kn5n0 win32apiスレがあるじゃん
335デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/29(月) 19:29:40.57ID:5HzXgXAz0 おいQZ下手に知識をひけらかそうとするなよ
無知がバレるぞ
無知がバレるぞ
336片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-eUT2)
2017/05/29(月) 19:51:26.34ID:EYaE0z6gd マイケルソフトは標準化を破壊し、混乱をもたらす者。
337片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-eUT2)
2017/05/29(月) 19:57:52.02ID:EYaE0z6gd パソコンの中に主権があるとしたら、我々の主権はマイケルソフトに蹂躙され続けている。
338デフォルトの名無しさん (ドコグロ MM3f-ijLw)
2017/05/29(月) 20:21:44.72ID:mrHKi14mM なら使うのやめたら?
339デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/29(月) 20:38:58.27ID:5HzXgXAz0 QZ怒りのLinux
340デフォルトの名無しさん (ワッチョイ 1f7b-OpMt)
2017/05/29(月) 20:55:21.03ID:zjgINM2w0 ここの過半数が訳語「返却値」を知らないわけか
マジでアホの集まりだな
マジでアホの集まりだな
341デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
2017/05/29(月) 21:35:32.81ID:j0cmL5ae0 │
│
し
│
し
342片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-eUT2)
2017/05/29(月) 21:45:39.05ID:EYaE0z6gd ぶらぶらうざい、ブラウザ
343デフォルトの名無しさん (ワッチョイ 9f3c-ijLw)
2017/05/29(月) 21:49:57.04ID:ZHccw+L90 返却値知ってる俺カッケー
ってか w
ってか w
344デフォルトの名無しさん (ワッチョイ 3b5c-Uhxf)
2017/05/29(月) 22:27:06.81ID:6SN6+L3k0 少なくとも返り血というなら返却血だな
345デフォルトの名無しさん (ワッチョイ ab6e-cSoe)
2017/05/29(月) 22:54:17.27ID:hRA+Cftk0 returnは、他動詞だから、返す値だろ。返された値
シェーン、カムバック!
シェーン、カムバック!
346330 (ワッチョイ db8d-InMg)
2017/05/30(火) 09:45:25.55ID:Kzko1WIk0347デフォルトの名無しさん (ワッチョイ 0fe2-9J/J)
2017/05/30(火) 20:02:22.03ID:C+7xWm9c0 このスレきも!って思ったらQZが自演しまくてるのか
348デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
2017/05/31(水) 05:42:53.04ID:89AX9+Wb0349デフォルトの名無しさん (ドコグロ MM3f-ijLw)
2017/05/31(水) 06:38:16.67ID:/NpZlBRIM350デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
2017/05/31(水) 06:57:32.87ID:g7bIgogk0 俺は知らんなぁ。
知ってると何か良いことあんの?
知ってると何か良いことあんの?
351デフォルトの名無しさん (ワッチョイ 0fa9-waVG)
2017/05/31(水) 09:15:02.98ID:jPWlNl/x0 異なる翻訳単位に存在するtypedefで定義された型を参照するには
どうやればできますか?
どうやればできますか?
352デフォルトの名無しさん (ワッチョイ 0bd4-+I1J)
2017/05/31(水) 11:27:45.76ID:tgfSYh/d0 typedef した部分を分離独立して、必要に応じて #include とかは普通にアリだけど。
この場合、#include した時点で同じ翻訳単位になってしまいそうだし。
A.できません(たぶん
この場合、#include した時点で同じ翻訳単位になってしまいそうだし。
A.できません(たぶん
353デフォルトの名無しさん (ワッチョイ 7bdf-NE6z)
2017/05/31(水) 12:08:17.16ID:BjVTieBy0 参照する必要が出た時点で共有しなきゃならんでしょ
適当なヘッダで宣言して必要に応じてincludeだな
逆に、その型を公開できない理由があるの?
適当なヘッダで宣言して必要に応じてincludeだな
逆に、その型を公開できない理由があるの?
354デフォルトの名無しさん (ワッチョイ 5ba3-5Zsd)
2017/05/31(水) 12:21:23.09ID:9Uam09Ht0 何でインクルードすると同じ翻訳単位になるの?
355デフォルトの名無しさん (ワッチョイ 2bb9-lYDY)
2017/05/31(水) 12:33:24.61ID:cF3ZhhKb0 プリプロセス終了後の1ソースの範囲が翻訳単位だし
ソース中の #include によって展開されたものは同じ単位内だべさ
ソース中の #include によって展開されたものは同じ単位内だべさ
356デフォルトの名無しさん (ワッチョイ 8ade-01DN)
2017/06/01(木) 22:22:53.65ID:iiFY2Tb80357デフォルトの名無しさん (ワッチョイ 8ade-01DN)
2017/06/01(木) 22:23:46.02ID:iiFY2Tb80 知ってても、このやりとりで知っただけのくせに
それ以上に訳知り顔すんじゃねえぞ
それ以上に訳知り顔すんじゃねえぞ
358デフォルトの名無しさん (ワッチョイ ea3c-Tm/A)
2017/06/01(木) 22:50:17.11ID:JcXv0anO0359デフォルトの名無しさん (アウアウカー Sad5-Z69W)
2017/06/01(木) 23:19:34.58ID:Dt+iD1aba 相変わらずどうでもいい言い争いをしてるな
360デフォルトの名無しさん (ワッチョイ 2575-YsH8)
2017/06/01(木) 23:36:18.95ID:Gz+/nkqG0 知ってたからといって、どうというものでもないものをよくここまで引っ張れるよね。
361デフォルトの名無しさん (ワッチョイ a6f0-01DN)
2017/06/02(金) 05:53:52.88ID:3GNvn+Lb0 効いてる効いてるw
俺、別に言ってること変えてねえぜ
まあ、そういうことにしなきゃ立場ねえのはわかるが
俺、別に言ってること変えてねえぜ
まあ、そういうことにしなきゃ立場ねえのはわかるが
362デフォルトの名無しさん (ドコグロ MM12-Tm/A)
2017/06/02(金) 07:14:07.93ID:ROv7EaIxM 自分だけが知ってるスッゴい知識
をバカにされた老害発狂 w
をバカにされた老害発狂 w
363デフォルトの名無しさん (ワッチョイ 91a3-/x3A)
2017/06/02(金) 11:34:32.62ID:pA0XtcoN0 同じファイルをインクルードしたところで
.cが違えば翻訳単位も違うだろ
.cが違えば翻訳単位も違うだろ
364デフォルトの名無しさん (ワッチョイ 25b9-k7rq)
2017/06/02(金) 12:19:23.31ID:V1/OI3VR0 異なる翻訳単位に存在するtypedefで定義された型を参照するには
自分の翻訳単位に同じ定義を持ち込むしかない
自分の翻訳単位に同じ定義を持ち込むしかない
365デフォルトの名無しさん (ワッチョイ eac8-CLsp)
2017/06/02(金) 13:28:22.87ID:fUQLBdQr0 関数側から見て返す値がリターン(Return)値
関数を呼び出した側が受け取る値をリザルト(Result)値
私はこの二つでしか理解しておりませぬ
関数を呼び出した側が受け取る値をリザルト(Result)値
私はこの二つでしか理解しておりませぬ
366デフォルトの名無しさん (ワッチョイ 2d51-01DN)
2017/06/02(金) 19:53:55.49ID:4eAI2C8m0 はあ?
無知をバカにされて発狂してんのはおまえだろw
無知をバカにされて発狂してんのはおまえだろw
367デフォルトの名無しさん (ドコグロ MMed-N+Y+)
2017/06/02(金) 21:04:53.84ID:kW0O8rcbM368デフォルトの名無しさん (ワッチョイ 2d51-01DN)
2017/06/03(土) 19:01:35.82ID:d/bMfhNd0 「自分だけが知ってる」すっごい知識だっておバンバン
自分の国の公文書に書いてあることなんだが
あ、自分の国じゃなかったか
なるほどそのようで
自分の国の公文書に書いてあることなんだが
あ、自分の国じゃなかったか
なるほどそのようで
369デフォルトの名無しさん (ワッチョイ 2575-YsH8)
2017/06/03(土) 20:31:14.37ID:ez6eSYjJ0 >>368
公文書に書いてあるんだ。それって何の公文書?
公文書に書いてあるんだ。それって何の公文書?
370デフォルトの名無しさん (ワッチョイ 1e92-nV2V)
2017/06/03(土) 23:15:17.12ID:0mDMXJvk0371デフォルトの名無しさん (ワッチョイ 2575-YsH8)
2017/06/03(土) 23:29:36.08ID:ez6eSYjJ0 >>370
JIS規格票は公文書だったのか。それは知らなかった。
JIS規格票は公文書だったのか。それは知らなかった。
372デフォルトの名無しさん (ワッチョイ 1e92-nV2V)
2017/06/03(土) 23:39:27.80ID:0mDMXJvk0 >>371
一応JISは法令に基づいて制定される日本の標準規格だし公文書と言ってもいいんじゃないの?
https://ja.wikipedia.org/wiki/%E5%B7%A5%E6%A5%AD%E6%A8%99%E6%BA%96%E5%8C%96%E6%B3%95
一応JISは法令に基づいて制定される日本の標準規格だし公文書と言ってもいいんじゃないの?
https://ja.wikipedia.org/wiki/%E5%B7%A5%E6%A5%AD%E6%A8%99%E6%BA%96%E5%8C%96%E6%B3%95
373デフォルトの名無しさん (ワッチョイ f9c2-N+Y+)
2017/06/04(日) 00:25:08.91ID:X8vsjvHi0 私文書じゃないだろ。
374デフォルトの名無しさん (ワッチョイ 456e-1YR0)
2017/06/04(日) 02:48:19.44ID:0v3tAx3a0 公文書なら無料にするべきだ
375デフォルトの名無しさん (ワッチョイ f9d1-N+Y+)
2017/06/04(日) 08:52:49.42ID:aIMLeetf0 複写に費用や手数料取られるのは当たり前だろ。
図書館で借りれば無料なんだし。
図書館で借りれば無料なんだし。
376デフォルトの名無しさん (ワッチョイ 6a37-1CPh)
2017/06/04(日) 11:22:12.97ID:QtczELPi0 公文書の無料と言うのは、国民全員の負担になるということなので、実はあまり良くない。
ほとんどの人が損をするという意味で、携帯の新規機種変無料とかと似たような問題。
ほとんどの人が損をするという意味で、携帯の新規機種変無料とかと似たような問題。
377デフォルトの名無しさん (ワッチョイ f9d1-N+Y+)
2017/06/04(日) 21:48:59.17ID:uAW2AjVo0 0円携帯禁止したせいでケータイメーカ全滅したけどな。
エコポイントのせいかも知れんが。
エコポイントのせいかも知れんが。
378デフォルトの名無しさん (ワッチョイ 66e3-rLqX)
2017/06/04(日) 22:00:00.35ID:xWX/pEI60379デフォルトの名無しさん (ワッチョイ 09aa-V2gy)
2017/06/04(日) 22:17:29.69ID:EH/r73Ar0 >>375
コピーしてるの?
コピーしてるの?
380デフォルトの名無しさん (ワッチョイ 6a37-1CPh)
2017/06/05(月) 00:56:05.33ID:9KIhNzrG0 >>377
それは0円なんて言う訳のわからんガラパゴス作戦に乗っからんと売れないようなゴミを作ってたからでしょ。
それは0円なんて言う訳のわからんガラパゴス作戦に乗っからんと売れないようなゴミを作ってたからでしょ。
381デフォルトの名無しさん (ワッチョイ ed23-zUMb)
2017/06/05(月) 01:20:59.03ID:/8LBEV6v0 おいQZ自演しないでゴミコードを晒せよ
382デフォルトの名無しさん (ワッチョイ ed23-zUMb)
2017/06/05(月) 04:45:59.05ID:/8LBEV6v0 QZって無知を指摘されるとすぐ自演でかき消すよな
お前もう気持ち悪いだけだから消えろよム板から
お前もう気持ち悪いだけだから消えろよム板から
383デフォルトの名無しさん (ワッチョイ ed23-zUMb)
2017/06/05(月) 04:49:01.59ID:/8LBEV6v0 おいQZゴミ煽りはもうやめろ
おまえはさっさとウンコードマニア殿堂入り級のゴミコードを貼ってろよ
おまえはさっさとウンコードマニア殿堂入り級のゴミコードを貼ってろよ
384デフォルトの名無しさん (ワッチョイ ed23-zUMb)
2017/06/05(月) 04:50:02.91ID:/8LBEV6v0 過去にすがるだけのゴミ無職がご高説垂れるなよ無職が
385デフォルトの名無しさん (ワッチョイ 66a2-zUMb)
2017/06/05(月) 16:44:47.93ID:bGR3O5j30 おまえのゴミコードじゃ何も語れないから
386デフォルトの名無しさん (ワッチョイ 91db-/x3A)
2017/06/05(月) 16:51:56.25ID:9PUOi1A/0 >>367
resultはボーランドが始めた方言だろ
resultはボーランドが始めた方言だろ
387デフォルトの名無しさん (ワッチョイ 25aa-YsH8)
2017/06/05(月) 23:06:28.96ID:s9HDUBeH0 お前ら書いたプログラムをaddressSantizerやThreadSantizer、valgrindとかでチェックしながらテスト実行してる?
388デフォルトの名無しさん (ワッチョイ 3511-YtzE)
2017/06/05(月) 23:45:19.00ID:agBnyIwY0 Cで書かれたプログラムがどのように機械語に翻訳され実行されるのかについて書いてある資料ってありませんか?
C言語の書き方的なWebサイトや本は腐るほどありますがCのコースコードがコンパイルされリンクされ実行可能なバイナリが出来上がり
そのバイナリ(必要なら関連する動的リンクライブラリも)がメモリにロードされ実行される過程をある程度詳しく解説している物はまず見かけません
この過程で良く使用されるファイルフォーマットの情報も欲しいです
当然実行環境や開発環境によって差異はあると思いますが基本的なところは変わらないはずですよね?
今のところターゲットはWindowsのPEと組み込み向けのバイナリファイル(メモリイメージ)で、開発環境はひとまずVC++とGNU系を考えています
最近C/C++を本格的に使わざるを得なくなり調べているのですがこのへんの情報が得られずに悩んでいます
スレ違いだったらすみません
C言語の書き方的なWebサイトや本は腐るほどありますがCのコースコードがコンパイルされリンクされ実行可能なバイナリが出来上がり
そのバイナリ(必要なら関連する動的リンクライブラリも)がメモリにロードされ実行される過程をある程度詳しく解説している物はまず見かけません
この過程で良く使用されるファイルフォーマットの情報も欲しいです
当然実行環境や開発環境によって差異はあると思いますが基本的なところは変わらないはずですよね?
今のところターゲットはWindowsのPEと組み込み向けのバイナリファイル(メモリイメージ)で、開発環境はひとまずVC++とGNU系を考えています
最近C/C++を本格的に使わざるを得なくなり調べているのですがこのへんの情報が得られずに悩んでいます
スレ違いだったらすみません
389デフォルトの名無しさん (ワッチョイ dd9f-CnD/)
2017/06/06(火) 01:06:07.57ID:uiQBRp2m0 コンパイラの実装がどうなってるかを知りたいのか、
それとも機械語がどう実行されているのかを知りたいのか
後者ならアセンブリ言語を勉強すればいい気がする
参考書も探せばありそう
それとも機械語がどう実行されているのかを知りたいのか
後者ならアセンブリ言語を勉強すればいい気がする
参考書も探せばありそう
390デフォルトの名無しさん (ブーイモ MM49-CnD/)
2017/06/06(火) 01:20:44.75ID:aIR29BXyM391デフォルトの名無しさん (ワッチョイ 91db-/x3A)
2017/06/06(火) 01:48:28.43ID:MUdbHmDP0 x86ならアセンブルソース出すオプションあるだろ
392デフォルトの名無しさん (ワッチョイ 91db-/x3A)
2017/06/06(火) 01:50:16.07ID:MUdbHmDP0 GNUだとx64もあるのかな?
まだやったことないや
まだやったことないや
393デフォルトの名無しさん (ワッチョイ 66a2-zUMb)
2017/06/06(火) 03:59:12.40ID:hzSn699I0 QZはうざいから黙ってて
394デフォルトの名無しさん (ドコグロ MMed-Tm/A)
2017/06/06(火) 07:16:30.22ID:rRaTvlwzM >>388
> 最近C/C++を本格的に使わざるを得なくなり調べているのですがこのへんの情報が得られずに悩んでいます
使うだけならそんな情報は要らんだろ
ネタでないならもっとピンポイントで聞かないと本読めと言うような回答しか返しようがない
> 最近C/C++を本格的に使わざるを得なくなり調べているのですがこのへんの情報が得られずに悩んでいます
使うだけならそんな情報は要らんだろ
ネタでないならもっとピンポイントで聞かないと本読めと言うような回答しか返しようがない
395デフォルトの名無しさん (ワッチョイ 66aa-7ey3)
2017/06/06(火) 07:48:32.18ID:Q6prYP2u0396デフォルトの名無しさん (ワッチョイ b96f-rLqX)
2017/06/06(火) 10:44:02.61ID:euIMzFdw0 >>388
デバッガーの使い方かアセンブリ言語を調べたらいいんじゃない?
「C言語をアセンブリ言語に翻訳してどうやってコンピュータを動かすか見てみよう」
っていう企画はネットや紙面でたまに見かける
gccならオプションでアセンブリ言語を出力できたはず
デバッガーの使い方かアセンブリ言語を調べたらいいんじゃない?
「C言語をアセンブリ言語に翻訳してどうやってコンピュータを動かすか見てみよう」
っていう企画はネットや紙面でたまに見かける
gccならオプションでアセンブリ言語を出力できたはず
397デフォルトの名無しさん (アウアウカー Sad5-6jhl)
2017/06/06(火) 12:13:04.78ID:HfSY3J2pa >>388
「ハロー"Hello, World"」っていう本が面白い
linuxでの話だがシステムコール呼び出しやmain関数の前に行われる処理、共有ライブラリの仕組み、elfフォーマットなどCプログラミングの裏にあるものについて詳しく書かれてる
まあ他の人も言ってるように普通にプログラミングするのにそんな情報は当分いらないけどな
「ハロー"Hello, World"」っていう本が面白い
linuxでの話だがシステムコール呼び出しやmain関数の前に行われる処理、共有ライブラリの仕組み、elfフォーマットなどCプログラミングの裏にあるものについて詳しく書かれてる
まあ他の人も言ってるように普通にプログラミングするのにそんな情報は当分いらないけどな
398デフォルトの名無しさん (ワッチョイ 91db-/x3A)
2017/06/06(火) 20:27:56.37ID:MUdbHmDP0 デバッグやリバーs
399388 (オッペケ Sr3d-YtzE)
2017/06/06(火) 20:33:35.53ID:5Y/t1Obrr レスありがとうございます
C/C++コンパイラに与える物に関する情報は沢山あるのですが、その先で何をやっているかについて解説されている資料は一気に減る気がします
リンカについて解説されている資料もあまり見ませんし、ほとんどはリンカはコンパイラが勝手に呼び出す物とされているように思います
今のところやりたいのはAPIフックやラッパーDLLなどを利用した既成アプリケーションへの介入と、組み込み系のアセンブラとCを混合した開発です
後者の場合は純正の開発ツールを使う場合に限りそれなりの資料がありますがgccなどで開発する場合の情報は多くない上に錯綜していたりします
>>389
昔組み込み系のソフトウェアをアセンブラで書いたことがあるのでアセンブラは多少読めますがCとの繋がりが見えてきません
アセンブラは違っていなければ何でもOKな所があるというか、特に生で動かす場合はレジスタの使い方からコードの配置やジャンプの方法まで
好きに決められますけど、Cだとその辺は全てブラックボックスですよね
>>391,396
アセンブルリストを出せるのは知っていますが出てきたコードはそのまま実行出来る物ではないですよね?たとえば別のソースコードの関数を
呼ぶようなケースでは呼び出し元が呼び出し先のアドレスを把握できていないと動かないはずです
>>397
おぉ、探していた物一つはまさにそんな感じの情報です。Windows向けのがあれば理想的でしたがその本を探してみます
C/C++コンパイラに与える物に関する情報は沢山あるのですが、その先で何をやっているかについて解説されている資料は一気に減る気がします
リンカについて解説されている資料もあまり見ませんし、ほとんどはリンカはコンパイラが勝手に呼び出す物とされているように思います
今のところやりたいのはAPIフックやラッパーDLLなどを利用した既成アプリケーションへの介入と、組み込み系のアセンブラとCを混合した開発です
後者の場合は純正の開発ツールを使う場合に限りそれなりの資料がありますがgccなどで開発する場合の情報は多くない上に錯綜していたりします
>>389
昔組み込み系のソフトウェアをアセンブラで書いたことがあるのでアセンブラは多少読めますがCとの繋がりが見えてきません
アセンブラは違っていなければ何でもOKな所があるというか、特に生で動かす場合はレジスタの使い方からコードの配置やジャンプの方法まで
好きに決められますけど、Cだとその辺は全てブラックボックスですよね
>>391,396
アセンブルリストを出せるのは知っていますが出てきたコードはそのまま実行出来る物ではないですよね?たとえば別のソースコードの関数を
呼ぶようなケースでは呼び出し元が呼び出し先のアドレスを把握できていないと動かないはずです
>>397
おぉ、探していた物一つはまさにそんな感じの情報です。Windows向けのがあれば理想的でしたがその本を探してみます
400デフォルトの名無しさん (ワッチョイ dd11-zUMb)
2017/06/06(火) 20:38:47.84ID:xjZg+i4X0 Advanced windows かの?
401デフォルトの名無しさん (ドコグロ MM12-TiZ7)
2017/06/06(火) 21:05:10.62ID:i8rk4NdIM 知りたいことは言語じゃなくてOSの仕様なのに
言語の延長だと思い込んでるから情報にたどり着けないんだろう
言語の延長だと思い込んでるから情報にたどり着けないんだろう
402デフォルトの名無しさん (ワッチョイ 9e7e-SN6U)
2017/06/06(火) 21:18:01.76ID:vqgdCAO10 ハロー“Hello, World” OSと標準ライブラリのシゴトとしくみ
が挙げられているが、その著者の坂井さん関連で本屋で実際手に取って
みて好きなのを選んだらどうだろうか。
12ステップで作る組込みOS自作入門
http://www.amazon.co.jp/dp/4877832394/
リンカ・ローダ実践開発テクニック
http://www.amazon.co.jp/dp/4789838072/
熱血! アセンブラ入門
http://www.amazon.co.jp/dp/479804180/
が挙げられているが、その著者の坂井さん関連で本屋で実際手に取って
みて好きなのを選んだらどうだろうか。
12ステップで作る組込みOS自作入門
http://www.amazon.co.jp/dp/4877832394/
リンカ・ローダ実践開発テクニック
http://www.amazon.co.jp/dp/4789838072/
熱血! アセンブラ入門
http://www.amazon.co.jp/dp/479804180/
403デフォルトの名無しさん (ドコグロ MM12-Tm/A)
2017/06/06(火) 21:33:57.74ID:6cAGm0S8M >>399
> ほとんどはリンカはコンパイラが勝手に呼び出す物とされているように思います
コンパイラとコンパイラドライバの区別もついてないのに背伸びしすぎ w
そもそもgccでもアセンブラを混在させたきゃインラインアセンブラで充分だしドキュメントも揃ってる
> ほとんどはリンカはコンパイラが勝手に呼び出す物とされているように思います
コンパイラとコンパイラドライバの区別もついてないのに背伸びしすぎ w
そもそもgccでもアセンブラを混在させたきゃインラインアセンブラで充分だしドキュメントも揃ってる
404デフォルトの名無しさん (アウアウカー Sad5-rT7Q)
2017/06/06(火) 23:03:45.40ID:1lY7TIjFa405デフォルトの名無しさん (ワッチョイ 2997-8pkt)
2017/06/06(火) 23:37:37.16ID:Qy4U0ic00 >>403
言ってることが嘘くさいよな。コンパイル、リンクの流れを知らないのは。
言ってることが嘘くさいよな。コンパイル、リンクの流れを知らないのは。
406デフォルトの名無しさん (ワッチョイ f9cf-q7dZ)
2017/06/07(水) 01:45:32.01ID:MW2os+Jx0 ヒカル TV出演「年間5億は稼ぐ勢いですね」
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいいぞ。副業にぴったしだ
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいいぞ。副業にぴったしだ
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
407デフォルトの名無しさん (ワッチョイ f9cf-q7dZ)
2017/06/07(水) 01:46:59.80ID:MW2os+Jx0 ヒカル TV出演「年間5億は稼ぐ勢いですね」
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいいぞ。副業にぴったしだ
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
ハロウィン用でいろいろな仮装マスク売ってるからオヌヌメ
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ
最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいいぞ。副業にぴったしだ
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
ハロウィン用でいろいろな仮装マスク売ってるからオヌヌメ
408388 (オッペケ Sr3d-YtzE)
2017/06/07(水) 07:27:30.60ID:ahDmd+gPr 一番使用経験があるのがインタプリタで、次がアセンブラです。この二つは一から実用になる物を作ったことがありますが
コンパイラは既存のコードを改造するのがせいぜいで何かを一から作ったことがありません
C/C++はVC++にプロジェクトを読み込んでビルドしたり、configure→makeやgccのコマンドを叩くくらいしかできないです
>>400,402,404
全部買える余裕はないのでまずは本屋で眺めてみます
>>403
組み込み系だとアセンブラからCで書かれたコードを呼び出す例も普通にあるようです
リセットベクタから最初に実行されるコードはアセンブラで書くのが一般的みたいですし
>>401
あ、なるほど。実行する部分はOSの仕事ですね
コンパイラは既存のコードを改造するのがせいぜいで何かを一から作ったことがありません
C/C++はVC++にプロジェクトを読み込んでビルドしたり、configure→makeやgccのコマンドを叩くくらいしかできないです
>>400,402,404
全部買える余裕はないのでまずは本屋で眺めてみます
>>403
組み込み系だとアセンブラからCで書かれたコードを呼び出す例も普通にあるようです
リセットベクタから最初に実行されるコードはアセンブラで書くのが一般的みたいですし
>>401
あ、なるほど。実行する部分はOSの仕事ですね
409デフォルトの名無しさん (ワッチョイ 250d-k7rq)
2017/06/07(水) 11:32:37.62ID:F8quZWoL0 >一から実用になる物を作ったことがあり
を指してるのは
(自作した)インタプリタと (自作した)アセンブラ じゃなく
既存のインタプリタと既存のアセンブラによって得られた生成物
だよな?
を指してるのは
(自作した)インタプリタと (自作した)アセンブラ じゃなく
既存のインタプリタと既存のアセンブラによって得られた生成物
だよな?
410デフォルトの名無しさん (ワッチョイ 66aa-7ey3)
2017/06/07(水) 11:49:04.14ID:SSzPpmQQ0 情報処理資格の組み込み・エンベッドのテキストに書いてある
宇宙産業・医療機器・産業機械などは、組み込みの高資格を持っていないと無理。
この領域では、すぐに人が死ぬから、MISRA-C に準拠していないと、使えない。
国際的に、MISRA-C 無しのCは、製品には使えない
各人が、個別のアセンブラで学ぶことは、
各人が個別の言語で話すことと同じになり、分断される
だから日本の情報処理資格では、CASL2 という抽象的なアセンブラで、議論する。
それをまねたのが、LLVM。
だから外国が、LLVMに飛びついた
>>395
を参照
宇宙産業・医療機器・産業機械などは、組み込みの高資格を持っていないと無理。
この領域では、すぐに人が死ぬから、MISRA-C に準拠していないと、使えない。
国際的に、MISRA-C 無しのCは、製品には使えない
各人が、個別のアセンブラで学ぶことは、
各人が個別の言語で話すことと同じになり、分断される
だから日本の情報処理資格では、CASL2 という抽象的なアセンブラで、議論する。
それをまねたのが、LLVM。
だから外国が、LLVMに飛びついた
>>395
を参照
411デフォルトの名無しさん (アウーイモ MMa1-8pkt)
2017/06/07(水) 12:42:49.70ID:AU15h8rIM >>408
Cで作られたかどうかは関係ないだろw
Cで作られたかどうかは関係ないだろw
412デフォルトの名無しさん (ワッチョイ ea1e-N+Y+)
2017/06/07(水) 19:23:59.78ID:vdjoMcEt0 >>408
大概の言語ならコンパイラもあるんじゃないの?py2cとかperl2cなんかもあるし。
大概の言語ならコンパイラもあるんじゃないの?py2cとかperl2cなんかもあるし。
413デフォルトの名無しさん (ワッチョイ 66a2-zUMb)
2017/06/07(水) 20:09:08.11ID:sUBS3aGw0 QZ怒りの流れを無視した無知晒しレス
414デフォルトの名無しさん (ワッチョイ eaea-q7dZ)
2017/06/07(水) 23:18:34.34ID:Mt8hQ3L40 鶴亀算のプログラムが違うと言われたのですが、どこが違うか教えてくださいm(_ _)m
#include <stdio.h>
int main(void){
int a;//足の合計
int b;//頭の合計
int c;//鶴1羽の足の数
int d;//亀1匹の足の数
int x,y;
scanf("%d %d %d %d",&a,&b,&c,&d);
//全部が鶴だとする
x = c * b;
//実際の足数の合計-全部が鶴の場合の足数
x = a-x;
//亀の数
x = x / 2;
//鶴の数
y = b - x;
printf("%d %d\n",x,y);
return 0;
}
そもそも鶴亀算の計算方法がネットで調べてもよく分かりませんでした
#include <stdio.h>
int main(void){
int a;//足の合計
int b;//頭の合計
int c;//鶴1羽の足の数
int d;//亀1匹の足の数
int x,y;
scanf("%d %d %d %d",&a,&b,&c,&d);
//全部が鶴だとする
x = c * b;
//実際の足数の合計-全部が鶴の場合の足数
x = a-x;
//亀の数
x = x / 2;
//鶴の数
y = b - x;
printf("%d %d\n",x,y);
return 0;
}
そもそも鶴亀算の計算方法がネットで調べてもよく分かりませんでした
415デフォルトの名無しさん (ワッチョイ eaaf-wUaA)
2017/06/07(水) 23:36:19.43ID:SnVv1syS0 それだとd使ってないから正しいはずないよね
もはやC言語関係ないが
//亀の数
x=x/(d-c);
てか連立一次方程式解けないってガチな小学生?
もはやC言語関係ないが
//亀の数
x=x/(d-c);
てか連立一次方程式解けないってガチな小学生?
416デフォルトの名無しさん (ワッチョイ dd48-D9zB)
2017/06/08(木) 00:38:33.35ID:g5GXU2ST0 またQZが自演工作を始めたよ
418デフォルトの名無しさん (ワッチョイ 0bcb-Fz1p)
2017/06/08(木) 17:37:09.59ID:JhfPMuMm0420片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-QXxp)
2017/06/08(木) 17:58:25.99ID:B37qUMHpd421デフォルトの名無しさん (ワッチョイ dd48-D9zB)
2017/06/08(木) 19:15:57.89ID:g5GXU2ST0 おいQZゴミコード投下をこのスレでもやるのかよ
また臭くなったなこのスレ
また臭くなったなこのスレ
422デフォルトの名無しさん (ワッチョイ 0bcb-Fz1p)
2017/06/08(木) 19:22:01.48ID:JhfPMuMm0 >>419
マクロの使い方じゃなくて定義の方を改変してほしいです
マクロの使い方じゃなくて定義の方を改変してほしいです
423デフォルトの名無しさん (ワッチョイ 9d97-Eb90)
2017/06/08(木) 19:40:15.68ID:HjFtHmDJ0 >>422
結局、何がしたいのか?
結局、何がしたいのか?
424デフォルトの名無しさん (ワッチョイ 1d32-kOr2)
2017/06/08(木) 19:40:15.97ID:vowgkzVG0 https://ideone.com/rXDfUM
f3の仕様知らんから適当だけど、こんな感じか?
f3の仕様知らんから適当だけど、こんな感じか?
425デフォルトの名無しさん (ワッチョイ 0bcb-Fz1p)
2017/06/09(金) 04:09:12.83ID:tFl0611n0426デフォルトの名無しさん (ワッチョイ 0ba2-D9zB)
2017/06/09(金) 11:40:03.51ID:i7mtMiOg0 おいQZ
宿題スレと同じようなレスするなよゴミ
宿題スレと同じようなレスするなよゴミ
427デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/09(金) 16:20:13.99ID:vSS0Y+fX0 マクロ地獄w
>>426
Hello World!
Hello World!
429388 (オッペケ Sr71-MZAq)
2017/06/09(金) 23:48:48.50ID:IBAe8Zr/r まだ一冊も買っていませんが>>397,402両氏に感謝
坂井氏の記事は判りやすくて良いですね。別件でググっていたらITmedia系列で連載しているのを発見しまして
今読んでいるところですけど大変為になります
ttp://www.itmedia.co.jp/author/174171/
坂井氏の記事は判りやすくて良いですね。別件でググっていたらITmedia系列で連載しているのを発見しまして
今読んでいるところですけど大変為になります
ttp://www.itmedia.co.jp/author/174171/
430デフォルトの名無しさん (ワッチョイ 0ba2-D9zB)
2017/06/10(土) 01:59:22.10ID:zs39aG6C0 QZ怒りの感謝芸
431デフォルトの名無しさん (ワッチョイ 859a-1pl6)
2017/06/10(土) 08:08:29.71ID:pb8IN1oh0 >>430
巣から出てくるな
巣から出てくるな
432デフォルトの名無しさん (ワッチョイ 85aa-TziR)
2017/06/10(土) 19:50:14.54ID:SZlbpMsi0433デフォルトの名無しさん (ワッチョイ 0be3-yTT2)
2017/06/10(土) 20:03:35.22ID:WN3QcUIY0 >>432
同一IPアドレスで複数のホストを割り当てているのだろう
だから、IPアドレスで要求しても答えられないことになる
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9B%E3%82%B9%E3%83%88
同一IPアドレスで複数のホストを割り当てているのだろう
だから、IPアドレスで要求しても答えられないことになる
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9B%E3%82%B9%E3%83%88
434デフォルトの名無しさん (ワッチョイ 0be3-yTT2)
2017/06/10(土) 20:24:27.55ID:WN3QcUIY0 >>432
バーチャルホストへの対応は http 1.1からなので、リクエストヘッダーを作成し
その中にどのホストへの要求かをサーバーに伝える必要があります。
このページを参考にしてみて。
http://tomosoft.jp/design/?p=3636
サンプルソースはローカルネットワークでやっているので、
変数 httphost にはIPアドレスが指定していますが、
ここに求めるホスト名を指定すれば良いはずです。
バーチャルホストへの対応は http 1.1からなので、リクエストヘッダーを作成し
その中にどのホストへの要求かをサーバーに伝える必要があります。
このページを参考にしてみて。
http://tomosoft.jp/design/?p=3636
サンプルソースはローカルネットワークでやっているので、
変数 httphost にはIPアドレスが指定していますが、
ここに求めるホスト名を指定すれば良いはずです。
435デフォルトの名無しさん (スププ Sd43-kmoq)
2017/06/10(土) 20:26:42.82ID:ya4F889pd ありがとうございます
ちょっと出てしまったので家に戻ったら
もらった情報を元に解決頑張ってみます
ちょっと出てしまったので家に戻ったら
もらった情報を元に解決頑張ってみます
436デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/10(土) 20:45:37.76ID:gQtHq0zi0 ありがとうございますwww
QZの自演感謝芸は本当にわかりやすい
QZの自演感謝芸は本当にわかりやすい
437デフォルトの名無しさん (ワッチョイ 0daa-kmoq)
2017/06/10(土) 23:40:32.38ID:IgPZpOJ50 誰が誰を煽ってるのかは分かりませんが
リクエストヘッダの記述をHTTP1.1にして
1.1の必須ヘッダのHostを設定して試してみたら
無事動作しました
ありがとうございました
リクエストヘッダの記述をHTTP1.1にして
1.1の必須ヘッダのHostを設定して試してみたら
無事動作しました
ありがとうございました
438デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/11(日) 01:17:53.70ID:3YYJxHfi0 おいQZ自演範囲拡大かよ気持ち悪い
439デフォルトの名無しさん (ワッチョイ 859a-1pl6)
2017/06/11(日) 09:55:13.67ID:IXRoGBtM0 >>438
巣から出てくるな
巣から出てくるな
440デフォルトの名無しさん (ワッチョイ 0bc0-6OcZ)
2017/06/11(日) 11:01:28.44ID:jDqQVEke0 C99の識別子について質問です。
構造体のメンバ命を「アンダーバー + 小文字アルファベット」で始まるものにするのは
仕様上、予約語と名前衝突しないことになっていますか?
「アンダーバー + 大文字アルファベット」で始まる識別子は予約されてるという記事がいくつかありましたが、小文字の場合に言及している情報は見つけられませんでした。
構造体のメンバ命を「アンダーバー + 小文字アルファベット」で始まるものにするのは
仕様上、予約語と名前衝突しないことになっていますか?
「アンダーバー + 大文字アルファベット」で始まる識別子は予約されてるという記事がいくつかありましたが、小文字の場合に言及している情報は見つけられませんでした。
441デフォルトの名無しさん (ワッチョイ d59f-zqzl)
2017/06/11(日) 11:12:15.08ID:8e5gqfxU0 >グローバル スコープを持ち、_ で始まる名前
>_ で始まり、その次が大文字の名前
>__ で始まる名前
この3つだけなんで、アンダースコア+小文字かつメンバ名なら大丈夫
まぁ個人的には2連アンダースコアと先頭アンダースコアは避けるけど
>_ で始まり、その次が大文字の名前
>__ で始まる名前
この3つだけなんで、アンダースコア+小文字かつメンバ名なら大丈夫
まぁ個人的には2連アンダースコアと先頭アンダースコアは避けるけど
442440 (ワッチョイ 0bc0-6OcZ)
2017/06/11(日) 11:58:31.34ID:jDqQVEke0443デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/11(日) 15:12:12.69ID:3YYJxHfi0 QZいかりの焦り
444デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/12(月) 01:04:21.12ID:yvrc7Cbj0 QZはム板から消えろ
445デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/12(月) 01:07:04.82ID:yvrc7Cbj0 でも、ご指摘の通り使用は最小限にとどめたいと思います。www
QZ落第のときのセリフがこれ
QZ落第のときのセリフがこれ
446デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/12(月) 11:24:14.92ID:tv4YfZMV0 ワッチョイとD9zBでNGすりゃいいのか?
447デフォルトの名無しさん (ワッチョイ 85aa-vEzb)
2017/06/12(月) 11:46:58.72ID:gcWGi0lu0 QZをNGにすりゃいいんじゃない?
448デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/12(月) 18:10:03.52ID:yvrc7Cbj0 QZ怒りのNG推奨
449デフォルトの名無しさん (ワッチョイ 3523-D9zB)
2017/06/12(月) 18:11:22.02ID:yvrc7Cbj0 おいQZ自演オナニーに飽き足らず
他スレで無知披露かよ
お前のような永久無職が議論できるような場所じゃないから
他スレで無知披露かよ
お前のような永久無職が議論できるような場所じゃないから
450デフォルトの名無しさん (ワッチョイ 859a-1pl6)
2017/06/12(月) 18:54:22.58ID:3CfNjtZc0 >>449
おいそれどこだよ?
おいそれどこだよ?
451デフォルトの名無しさん (ワッチョイ e511-yTT2)
2017/06/12(月) 19:34:00.50ID:5L3xq22d0 %%%MC+7,8%%%
}
000-"M","LES","TUV=0.13325&/0\7&%&",
001-"23","1","0","2","7.14",[\b%7/1444*%812%2.3%7&6111\end\\]{%3%12%\br
}
000-"M","LES","TUV=0.13325&/0\7&%&",
001-"23","1","0","2","7.14",[\b%7/1444*%812%2.3%7&6111\end\\]{%3%12%\br
452デフォルトの名無しさん (ワッチョイ 0bcb-Fz1p)
2017/06/13(火) 17:20:53.30ID:kTA8yB7D0 よくいろいろなホームページにinlineは付けなくてもコンパイラーが最適化で自動で決めるので
付けなくていいと見かけるけれど、重要なのはinlineを書くかどうかじゃなくて
定義をヘッダーファイルにかいてinlineに出来るかソースファイルに書いて
出来ないようにするのかってことでしょ。
inlineが出来るようにするのか出来ないようにするのかの話を
inlineを書くか書かないかの話にすり替えている汚いやり方だと思いませんか?
付けなくていいと見かけるけれど、重要なのはinlineを書くかどうかじゃなくて
定義をヘッダーファイルにかいてinlineに出来るかソースファイルに書いて
出来ないようにするのかってことでしょ。
inlineが出来るようにするのか出来ないようにするのかの話を
inlineを書くか書かないかの話にすり替えている汚いやり方だと思いませんか?
453デフォルトの名無しさん (ワッチョイ 231b-eQak)
2017/06/13(火) 18:10:46.25ID:TlpR08p20454デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/13(火) 19:22:36.04ID:7vUqF+ijM register 変数だって、本当にレジスタに割り当ててるか怪しいもんだ。
455デフォルトの名無しさん (JP 0Ha1-zqzl)
2017/06/13(火) 19:32:28.37ID:fqqPhx3LH 当たり前の話であって怪しくもなんともないんだが
456デフォルトの名無しさん (スププ Sd43-BT4T)
2017/06/13(火) 19:45:37.31ID:+kV5cJp9d Cって関数オブジェクト的な動作ってできるっけ?
457デフォルトの名無しさん (ワッチョイ 236f-aKgA)
2017/06/13(火) 20:05:20.23ID:co8+PZUE0 第一級関数
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
>CやC++、Pascalなどのプログラミング言語は関数ポインタをサポートしており、データ構造に含めたり他の関数に引数として渡したりすることができる。
>しかし、それらの関数は一般にリフレクションなしではプログラムの実行時に動的に生成することができないため、第一級関数をサポートしているとは見なされていない。
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
>CやC++、Pascalなどのプログラミング言語は関数ポインタをサポートしており、データ構造に含めたり他の関数に引数として渡したりすることができる。
>しかし、それらの関数は一般にリフレクションなしではプログラムの実行時に動的に生成することができないため、第一級関数をサポートしているとは見なされていない。
458デフォルトの名無しさん (ドコグロ MM13-W6lL)
2017/06/13(火) 20:37:39.64ID:siDT5/O8M >>454
今時ヒントにもしてないだろ
今時ヒントにもしてないだろ
459デフォルトの名無しさん (ワンミングク MMa3-vEzb)
2017/06/13(火) 22:14:31.00ID:fqqtkiftM registerとか、メジャーなコンパイラで同じオプティマイザーを使用するC++では無くなっちゃったしな。
460デフォルトの名無しさん (スププ Sd43-BT4T)
2017/06/13(火) 22:26:08.47ID:+kV5cJp9d >>457
ないってことか。ありがとうございます
ないってことか。ありがとうございます
461デフォルトの名無しさん (ワッチョイ 23ea-kOr2)
2017/06/13(火) 23:50:32.05ID:Vyd7kh0w0 -O3つければ関係ナッシング
-O2でもいいかも
-O2でもいいかも
462デフォルトの名無しさん (ワッチョイ 9511-LnFi)
2017/06/14(水) 02:09:06.53ID:cctIdNvV0 http://i.imgur.com/b3A3YWl.jpg
この(お)がよく分からん
最初の段階でi=j=0だからswapさせても意味なくね?
だったら(お)でiとjずらすのか?
とも思ったが反応なし
教えてくれると嬉しい
この(お)がよく分からん
最初の段階でi=j=0だからswapさせても意味なくね?
だったら(お)でiとjずらすのか?
とも思ったが反応なし
教えてくれると嬉しい
463デフォルトの名無しさん (ワッチョイ 9511-LnFi)
2017/06/14(水) 02:17:07.73ID:cctIdNvV0 自己解決した
464デフォルトの名無しさん (スップ Sd03-+jJi)
2017/06/14(水) 10:41:57.78ID:xDw396a4d 出力変換指定子について教えてください
printf("16進のffを10進に変換すると%dです\n", 0xff);
実行結果→16進のffを10進に変換すると15です
%dなどの出力変換指定子というのは、数値を文字列に変換して出力している、という理解でよろしいのでしょうか?
それとも数値を数値のまま、文字列の間に挟み込んで出力してくれている、という理解の方が合っていますでしょうか?
printf("16進のffを10進に変換すると%dです\n", 0xff);
実行結果→16進のffを10進に変換すると15です
%dなどの出力変換指定子というのは、数値を文字列に変換して出力している、という理解でよろしいのでしょうか?
それとも数値を数値のまま、文字列の間に挟み込んで出力してくれている、という理解の方が合っていますでしょうか?
465デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 11:28:08.77ID:cB3KRwiX0 前者
466デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/14(水) 11:36:10.60ID:H04nBmO80 http://linuxjm.osdn.jp/html/LDP_man-pages/man3/printf.3.html
%dは文字列に変換する
15じゃなく255になるかと
数値のままってのがよくわからんけど
printf( "%c", 0x41);
ならほとんどの処理系で大文字Aが表示される
%cでcharのビット数より上位のビットが
立っていた場合の挙動は知らん
%dは文字列に変換する
15じゃなく255になるかと
数値のままってのがよくわからんけど
printf( "%c", 0x41);
ならほとんどの処理系で大文字Aが表示される
%cでcharのビット数より上位のビットが
立っていた場合の挙動は知らん
467デフォルトの名無しさん (ワッチョイ 0ddb-iuPl)
2017/06/14(水) 11:37:07.78ID:H04nBmO80 失礼しますた
468デフォルトの名無しさん (JP 0Ha1-zqzl)
2017/06/14(水) 11:38:27.87ID:iafztWleH469デフォルトの名無しさん (ワンミングク MMa3-E03C)
2017/06/14(水) 12:41:52.28ID:Xahf6/YZM470デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 12:49:16.05ID:jUBU+j0AM471デフォルトの名無しさん (ワンミングク MMa3-E03C)
2017/06/14(水) 12:57:53.53ID:Xahf6/YZM >>470
符合が付いているから255じゃない。で466のレスに繋がる(^_^)ノ
符合が付いているから255じゃない。で466のレスに繋がる(^_^)ノ
472デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 12:58:00.19ID:cB3KRwiX0 符号付で -1 とみなし、そこから符号を維持したまま拡張して引数に詰む
引数を引っ張り出して 符号付評価で値を文字化の結果 "-1 "
(char 型変数に 0xff を入れてて、それを printf に渡したケース)
ところでリテラルの 0xff が符号付か否かは何か規定あったっけ?
引数を引っ張り出して 符号付評価で値を文字化の結果 "-1 "
(char 型変数に 0xff を入れてて、それを printf に渡したケース)
ところでリテラルの 0xff が符号付か否かは何か規定あったっけ?
473デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 13:30:59.38ID:jUBU+j0AM474デフォルトの名無しさん (ワッチョイ 850d-OlK+)
2017/06/14(水) 13:41:28.06ID:cB3KRwiX0475デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:52:36.33ID:ROBFB8K40 0xffの型はintだよ
476デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:54:17.69ID:ROBFB8K40 int a = 255;
の時に、aが-1になったら不便でしょ?
の時に、aが-1になったら不便でしょ?
477デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 18:56:15.18ID:ROBFB8K40 int a = (signed char)255;
の場合は-1になる
の場合は-1になる
478デフォルトの名無しさん (ワッチョイ d511-D9zB)
2017/06/14(水) 19:07:02.19ID:wXdIbuq80 比較演算子の左辺 右辺 でやらかしそうだ・・・
479デフォルトの名無しさん (ドコグロ MM13-Hznn)
2017/06/14(水) 19:25:17.22ID:jUBU+j0AM481デフォルトの名無しさん (ワッチョイ 859a-ryUj)
2017/06/14(水) 21:51:54.69ID:ROBFB8K40 リテラルが無条件でintなわけじゃない
intで表現出来る範囲はint
intを越えた場合には基本的には表現出来る最小の型になる
u, l, ul, ll, ullなどのサフィックスで明示的に変更も可能
サフィックスで作れない型はキャストして作る
intで表現出来る範囲はint
intを越えた場合には基本的には表現出来る最小の型になる
u, l, ul, ll, ullなどのサフィックスで明示的に変更も可能
サフィックスで作れない型はキャストして作る
482デフォルトの名無しさん (ワッチョイ bb11-3r0c)
2017/06/15(木) 03:30:56.19ID:foJhra+T0 数値リテラルはこの辺参照
www.bohyoh.com/CandCPP/FAQ/FAQ00074.html
あと、-100とかは数値リテラル100と単項-となることに注意
www.bohyoh.com/CandCPP/FAQ/FAQ00074.html
あと、-100とかは数値リテラル100と単項-となることに注意
483デフォルトの名無しさん (ドコグロ MMda-C/u3)
2017/06/15(木) 09:30:50.85ID:dX1k+/c2M >>482
表が分かりにくすぎる。
表が分かりにくすぎる。
484464 (スッップ Sdda-2SNu)
2017/06/16(金) 13:48:41.24ID:6HI1EFfUd485デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 13:50:22.93ID:6HI1EFfUd >>481
ulって書く人とluって書く人がいますがどちらが正しいのですか?
ulって書く人とluって書く人がいますがどちらが正しいのですか?
486デフォルトの名無しさん (アウアウカー Sa33-yC4D)
2017/06/16(金) 14:04:02.57ID:ZbWJ164Ea どちらも正しいです
487デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 14:10:39.42ID:5SN0StmUd >>486
ありがとうございます
ありがとうございます
488デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/16(金) 16:33:55.37ID:lEbqssrF0 QZ潜伏スレッド
489デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/16(金) 17:03:31.61ID:15uCJDWTM switch(c)
case no:
これで、ケースnoに入った際に、もう一度switch文を繰り返す方法はありませんか?
goto文使わないと無理ですかね?
case no:
これで、ケースnoに入った際に、もう一度switch文を繰り返す方法はありませんか?
goto文使わないと無理ですかね?
490片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/16(金) 17:06:02.86ID:qjls6Rocd491デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/16(金) 18:55:58.83ID:OzysmJdyM >>490
ありがとうございます
case yes:
ほにゃらら
case no:
break;
yesの場合もbreakしたいのですが、noに流れさせてbreakするのと、yeaにbreakも書くのとどちらがいいんですかね?
ありがとうございます
case yes:
ほにゃらら
case no:
break;
yesの場合もbreakしたいのですが、noに流れさせてbreakするのと、yeaにbreakも書くのとどちらがいいんですかね?
492デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/16(金) 19:13:28.04ID:exN5gWxV0 お好きなように
caseはbreakする事がほとんどなので、コードを読むときにbreakがあると勘違いしないように、ほにゃららの後とcase no:の後の両方にコメントを忘れずに
caseはbreakする事がほとんどなので、コードを読むときにbreakがあると勘違いしないように、ほにゃららの後とcase no:の後の両方にコメントを忘れずに
493デフォルトの名無しさん (スッップ Sdda-2SNu)
2017/06/16(金) 22:34:26.38ID:jRm/huKjd 変換仕様とデータ型との関係について質問させてください
例
int a;
scanf("%c", &a);
printf("%c\n", a );
考え方として、intと%cのどちらが優先されるでしょうか?
例
int a;
scanf("%c", &a);
printf("%c\n", a );
考え方として、intと%cのどちらが優先されるでしょうか?
494片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/16(金) 22:41:33.61ID:qjls6Rocd495デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/16(金) 23:09:12.38ID:exN5gWxV0 >>493
scanfの方は、&a を charへのポインタとして処理をする
結果は環境依存
printfも基本的には書式と引数が合っている必要があるが、intより小さい引数は全ていったんintに変換されてからコールされるので、この場合は問題なし
scanfの方は、&a を charへのポインタとして処理をする
結果は環境依存
printfも基本的には書式と引数が合っている必要があるが、intより小さい引数は全ていったんintに変換されてからコールされるので、この場合は問題なし
496493 (スッップ Sdda-2SNu)
2017/06/16(金) 23:37:22.59ID:jRm/huKjd497デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 03:37:57.37ID:O3DVEcmT0 さっきからここQZ自演だらけだぞ
498デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/17(土) 05:36:36.60ID:4Gyw35tF0 QZとは?
499デフォルトの名無しさん (ワッチョイ e36d-FyNN)
2017/06/17(土) 12:08:22.44ID:ir1eTLN60500493 (スップ Sd7a-2SNu)
2017/06/17(土) 16:45:24.10ID:Znj/bctpd501デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 19:52:46.57ID:O3DVEcmT0 QZ怒りの自画自賛ww
本当はマ気取りの無職無能のおっさん
誰にも相手されないから自演で賞賛してる
本当はマ気取りの無職無能のおっさん
誰にも相手されないから自演で賞賛してる
502デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 19:53:20.24ID:O3DVEcmT0 こういう自画自賛してるあたり
自演がバレバレ
自演がバレバレ
503片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/17(土) 20:07:29.95ID:mM98wL1Bd ここに書き込む前にマニュアル見ろよ。
504デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/17(土) 21:04:59.42ID:O3DVEcmT0 老害無職QZはきえろ
505デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:20:58.36ID:En99E4tcM 自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したいのですが、どうすればいいんですか?
exit(0)を使うとプログラムごと強制終了されてしまいますよね?
exit(0)を使うとプログラムごと強制終了されてしまいますよね?
506デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:24:57.70ID:En99E4tcM exit(-1)でした
507デフォルトの名無しさん (ワッチョイ 8b0d-VgqF)
2017/06/20(火) 17:35:35.16ID:mOitPqgi0 自作関数の戻りの型を void にしてるならしかるべき場所で
return ;
て書くだけ
return ;
て書くだけ
508デフォルトの名無しさん (オイコラミネオ MMe6-yBMi)
2017/06/20(火) 17:45:00.45ID:YsGmXvJhM509片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-adb9)
2017/06/20(火) 17:59:48.83ID:RGtVeD1Gd printf("エラーが発生したんだぜ、この野郎。やんのか?\n");
510デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/20(火) 18:12:33.50ID:hyzgnXlk0 紙のメモ用紙に書き込むサブルーチン作って、そいつにやらせたらどうだろう
511デフォルトの名無しさん (ワッチョイ 8b9a-FPX1)
2017/06/20(火) 18:16:22.54ID:3WBJr6kg0512デフォルトの名無しさん (ワッチョイ 4fdb-hAah)
2017/06/20(火) 18:39:43.32ID:tAZ0INkH0 言語関係無いな
513デフォルトの名無しさん (ワッチョイ b311-2WTa)
2017/06/20(火) 18:48:54.06ID:RHsT5Eol0 >>508
目的が変わっている
自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したい
↓↓↓↓↓↓↓↓↓↓
自作関数でファイルオープンする際に、ファイルが存在しなかったらその旨を通達して抜けたい
戻りの型を int にして 成功は 0 失敗はそれ以外のエラーコードにして戻る
ポインタでエラーコードを指す引数受けて、その指し先に値を渡す
(errorno 等のグローバル変数でエラーを伝える)
呼び出し元のほうでエラーの有無で分岐
目的が変わっている
自作関数でファイルオープンする際に、ファイルが存在しなかったらその関数を強制終了したい
↓↓↓↓↓↓↓↓↓↓
自作関数でファイルオープンする際に、ファイルが存在しなかったらその旨を通達して抜けたい
戻りの型を int にして 成功は 0 失敗はそれ以外のエラーコードにして戻る
ポインタでエラーコードを指す引数受けて、その指し先に値を渡す
(errorno 等のグローバル変数でエラーを伝える)
呼び出し元のほうでエラーの有無で分岐
514デフォルトの名無しさん (アウアウイー Saeb-yC+1)
2017/06/20(火) 22:46:25.81ID:bX2tlMgna ちょっと直接C言語に関係ない話なのですが、
コマンドプロンプトから、標準入力からデータを受け取る必要のある
Cのプログラムを実行する際、「<」を使ってファイルから入力しています。
あるデータファイルのショートカットファイルから「<」を使って
データファイルのデータを入力するにはどうしたらいいでしょうか?
コマンドプロンプトから、標準入力からデータを受け取る必要のある
Cのプログラムを実行する際、「<」を使ってファイルから入力しています。
あるデータファイルのショートカットファイルから「<」を使って
データファイルのデータを入力するにはどうしたらいいでしょうか?
515デフォルトの名無しさん (ドコグロ MM32-rl9t)
2017/06/21(水) 06:56:18.44ID:tmnPHhmOM516デフォルトの名無しさん (ワッチョイ 4fdb-hAah)
2017/06/21(水) 11:47:59.41ID:x++JJuQ30517デフォルトの名無しさん (ワッチョイ 8b0d-VgqF)
2017/06/21(水) 12:03:23.32ID:P8lmP+eo0 ショートカットファイルということは windows の話かねぇ?
渡ってきてる .lnk ファイルの中身から本当のパス文字列を知って
さらにその指し先のファイルを標準入力に流す なんてことが
コンマンドラインシェルはやらんだろうな
渡ってきてる .lnk ファイルの中身から本当のパス文字列を知って
さらにその指し先のファイルを標準入力に流す なんてことが
コンマンドラインシェルはやらんだろうな
518デフォルトの名無しさん (ワッチョイ 3a1b-iuF1)
2017/06/21(水) 14:51:27.68ID:mT0xXfH20 入力を受け取るコマンドがやればいい
519デフォルトの名無しさん (ワッチョイ aea2-2WTa)
2017/06/21(水) 22:27:31.29ID:7+kf0Fyw0 またQZがほざいてる
520デフォルトの名無しさん (ワッチョイ 576f-dFnT)
2017/06/22(木) 13:44:42.49ID:LmRn3xN/0 ショートカットファイルをリダイレクトしても
単に中身を標準入力として読み取るだけで、
解釈するわけじゃない
単に中身を標準入力として読み取るだけで、
解釈するわけじゃない
521デフォルトの名無しさん (JP 0H3f-ZLad)
2017/06/22(木) 13:46:53.43ID:lDx6Yk3FH 初心者です
構造体の使い回しができないというのは、どういう意味ですか?
structがない場合です
構造体の使い回しができないというのは、どういう意味ですか?
structがない場合です
522デフォルトの名無しさん (ドコグロ MMdf-7Pwj)
2017/06/22(木) 14:03:59.21ID:l/KIobDzM523デフォルトの名無しさん (ワッチョイ 7f6c-ZLad)
2017/06/22(木) 15:01:01.41ID:nVwUJlKa0 >>521
構造体の使いまわしはできるよ
構造体の使いまわしはできるよ
524デフォルトの名無しさん (ドコグロ MMdf-6no4)
2017/06/22(木) 15:16:04.77ID:iuy16AyXM struct のない構造体は難しいな。
自分で実装するのかな?
自分で実装するのかな?
525デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:34:33.27ID:6ZKlzltP0 すいません初学者ですが質問です
#include<stdio.h>
double add(double i,double j){return i+j;}
double sub(double i,double j){return i-j;}
double mul(double i,double j){return i*j;}
double div(double i,double j)
{if(j!=0.0) return i/j; else return 0.0;}
int main(void){
double a=39.0,b=12.0;
double (*func)(double x,double y);
func=add;
printf("add:%f\n",(*func)(a,b));
func=sub;
printf("sub:%f\n",(*func)(a,b));
func=mul;
printf("mul:%f\n",(*func)(a,b));
func=div;
printf("div:%f\n",(*func)(a,b));
return 0;
}
8行目の(*fanc)の意味が解りません
例えばfunc=addで代入すると(double *add(double i,double j){return i+j;})(a,b)になるんですか?
(double add(double i,double j){return i+j;})(a,b)になってadd(double i,double j){return i+j;}の部分で
プロトタイプ宣言が呼び出されるからおkなんですか?そうなると(*fanc)の*の意味が解らなくなります。
ちょっと、頭が混乱してて訳の解らない文章になってるかもしれませんが上記プログラムで何故スムーズに行くのかがいまいちよく解りません
#include<stdio.h>
double add(double i,double j){return i+j;}
double sub(double i,double j){return i-j;}
double mul(double i,double j){return i*j;}
double div(double i,double j)
{if(j!=0.0) return i/j; else return 0.0;}
int main(void){
double a=39.0,b=12.0;
double (*func)(double x,double y);
func=add;
printf("add:%f\n",(*func)(a,b));
func=sub;
printf("sub:%f\n",(*func)(a,b));
func=mul;
printf("mul:%f\n",(*func)(a,b));
func=div;
printf("div:%f\n",(*func)(a,b));
return 0;
}
8行目の(*fanc)の意味が解りません
例えばfunc=addで代入すると(double *add(double i,double j){return i+j;})(a,b)になるんですか?
(double add(double i,double j){return i+j;})(a,b)になってadd(double i,double j){return i+j;}の部分で
プロトタイプ宣言が呼び出されるからおkなんですか?そうなると(*fanc)の*の意味が解らなくなります。
ちょっと、頭が混乱してて訳の解らない文章になってるかもしれませんが上記プログラムで何故スムーズに行くのかがいまいちよく解りません
526デフォルトの名無しさん (ワッチョイ 574b-EHt8)
2017/06/22(木) 16:39:23.60ID:XYYNYBrF0527デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:40:28.01ID:6ZKlzltP0 もうちょっと言うと8行目の*がポインタ宣言として何でfuncにaddとかmulとか代入すると関数を参照できるのかよく解りません
*が無いとコンパイラからエラーを指摘されるんですが*がなくても関数のプロトタイプ宣言と同じ形になるのに関数が呼び出されないのが納得いきません
*が無いとコンパイラからエラーを指摘されるんですが*がなくても関数のプロトタイプ宣言と同じ形になるのに関数が呼び出されないのが納得いきません
528デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 16:42:15.27ID:6ZKlzltP0 >>526
うーん、なんていうか普通だとしてもなんか納得できないって言うか理屈の順序がわからないというか
うーん、なんていうか普通だとしてもなんか納得できないって言うか理屈の順序がわからないというか
529デフォルトの名無しさん (ワッチョイ 170d-NIhq)
2017/06/22(木) 16:45:03.29ID:LDtj9GzU0 double (*func)(double,doube);
[double を 2つ受けて double を返す関数] の場所を覚えるための変数 が func
プロトタイプ宣言ではなく 長ったらしいけど変数宣言 int *func; と本質的に同じ
[double を 2つ受けて double を返す関数] の場所を覚えるための変数 が func
プロトタイプ宣言ではなく 長ったらしいけど変数宣言 int *func; と本質的に同じ
530デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:05:19.55ID:6ZKlzltP0 >>529
でもint *fancの場合だとfanc=&a見たいに&をつけてアドレスを入れるんじゃないですか?
この場合&が省略されてもいいのは何でですか?
代入もaddとかsubと短くなってますけど
いつadd=double add(double i,double j){return i+j;}になったんでしょうか?
理解力や理解度が低いのもあると思いますがいまいちよく解りません・・・
でもint *fancの場合だとfanc=&a見たいに&をつけてアドレスを入れるんじゃないですか?
この場合&が省略されてもいいのは何でですか?
代入もaddとかsubと短くなってますけど
いつadd=double add(double i,double j){return i+j;}になったんでしょうか?
理解力や理解度が低いのもあると思いますがいまいちよく解りません・・・
531デフォルトの名無しさん (ワッチョイ 170d-NIhq)
2017/06/22(木) 17:19:00.14ID:LDtj9GzU0 >>530
前半の疑問
関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
という文法にしちゃった そしてそう記述するのが古くからの慣わし
関数宣言 double add(double i, double j);
関数の実装 double add(double i, double j) { return i+j; }
宣言した関数の呼び出し add(i,j);
宣言した関数のポインタを得る add (もしくは &add でも同じ)
前半の疑問
関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
という文法にしちゃった そしてそう記述するのが古くからの慣わし
関数宣言 double add(double i, double j);
関数の実装 double add(double i, double j) { return i+j; }
宣言した関数の呼び出し add(i,j);
宣言した関数のポインタを得る add (もしくは &add でも同じ)
532デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:46:27.25ID:6ZKlzltP0 >>531
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
> 宣言した関数のポインタを得る add (もしくは &add でも同じ)
凄く頭がすっきりしました。コンパイルで実行してみてもaddと%addどちらでも通りました。
printfの(*fanc)も&addの実態を参照してるわけですね。
ありがとうございました
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
> 宣言した関数のポインタを得る add (もしくは &add でも同じ)
凄く頭がすっきりしました。コンパイルで実行してみてもaddと%addどちらでも通りました。
printfの(*fanc)も&addの実態を参照してるわけですね。
ありがとうございました
533デフォルトの名無しさん (ワッチョイ 9fd7-M5hL)
2017/06/22(木) 17:46:30.59ID:dMWz8j2D0 >>530
8行目 double (*func)(double x,double y); は変数funcの宣言
型は double(*)(double,double) の関数ポインタ
変数funcに各関数のアドレスを代入して呼び出してる
代入される関数には&を付けても付けなくても動作は同じ
8行目 double (*func)(double x,double y); は変数funcの宣言
型は double(*)(double,double) の関数ポインタ
変数funcに各関数のアドレスを代入して呼び出してる
代入される関数には&を付けても付けなくても動作は同じ
534デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 17:47:38.20ID:6ZKlzltP0 >>533
ありがとうございます!ここ数日悩んでたんですがすっきりしました。
ありがとうございます!ここ数日悩んでたんですがすっきりしました。
535デフォルトの名無しさん (ワッチョイ 9fd7-M5hL)
2017/06/22(木) 18:07:18.42ID:dMWz8j2D0536デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 18:33:38.45ID:6ZKlzltP0 >>535
それは
1。ポインタ側から見たら*fancになってfancの実体をみている
2.fanc=addと代入されているんだからfancと書かれていてもaddという変数(代入済み)に読み替えて実体を見ている
という意味で同じだという捉え方で大丈夫でしょうか?
それは
1。ポインタ側から見たら*fancになってfancの実体をみている
2.fanc=addと代入されているんだからfancと書かれていてもaddという変数(代入済み)に読み替えて実体を見ている
という意味で同じだという捉え方で大丈夫でしょうか?
537デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 18:39:12.10ID:9RPI8PPS0 関数へのポインタを得るのに & を省略できるのと同じように
ポインタの指し先の関数を呼び出すのに
(*func)(引数) と書いても func(引数) と書いても同じ という文法にしちゃった
※
Cは短く書けるならそっちを使う って歴史なので func(引数) って書くことが多い
ポインタの指し先の関数を呼び出すのに
(*func)(引数) と書いても func(引数) と書いても同じ という文法にしちゃった
※
Cは短く書けるならそっちを使う って歴史なので func(引数) って書くことが多い
538デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/22(木) 18:42:56.92ID:6ZKlzltP0539デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/22(木) 18:43:53.42ID:Ep4mqRnU0 >>525
divの中身が気にくわない
divの中身が気にくわない
540デフォルトの名無しさん (ドコグロ MMbf-Stqb)
2017/06/22(木) 19:20:58.14ID:n4zvfmL3M >>531
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
しれっと嘘書くなよ
代入関係なく関数名だけ(後ろにカッコをつけない)なら関数へのポインタとして扱う
比較とかでも使える
> 関数へのポインタ変数 func に 関数を代入する際の記述に限り & を省略できる
しれっと嘘書くなよ
代入関係なく関数名だけ(後ろにカッコをつけない)なら関数へのポインタとして扱う
比較とかでも使える
541デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 19:44:37.36ID:9RPI8PPS0 あ ごめんなさい ごめんなさい ごめんなさい
543デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/22(木) 20:53:54.63ID:9RPI8PPS0 bye
544デフォルトの名無しさん (ワッチョイ 9f1e-6no4)
2017/06/22(木) 21:42:29.54ID:xapmI+EN0 exit(1)
545デフォルトの名無しさん (ワッチョイ d7b6-q+YL)
2017/06/23(金) 00:26:19.17ID:Txr7HE8G0 >>539
俺も最初にそう思った。j != 0.0 て
俺も最初にそう思った。j != 0.0 て
546デフォルトの名無しさん (ワッチョイ ff91-ZLad)
2017/06/23(金) 09:04:15.74ID:pzaENb+m0 浮動小数点の四則演算で例外が起きないようにするには、どこを注意したらいいんだろう
547デフォルトの名無しさん (ブーイモ MM3b-nmmA)
2017/06/23(金) 09:13:50.88ID:OUZ9ZG4GM 普通の設定なら0で割っても例外は起きないよ。Infになるだけ。
Infも計算できる。Inf/InfとかはNaNになったりするけど。
Infも計算できる。Inf/InfとかはNaNになったりするけど。
548デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 09:28:01.22ID:7CKItQkCM 柴田さんの本でアルゴリズム勉強したいんだけど、c言語とjavaどっちがいいんですか?
目的は基本情報技術者試験午後対策と競技プログラミング用です
どっちも読むのがいいのでしょうか?
目的は基本情報技術者試験午後対策と競技プログラミング用です
どっちも読むのがいいのでしょうか?
549デフォルトの名無しさん (ワッチョイ f7db-XubJ)
2017/06/23(金) 10:45:37.79ID:HJ43MjWq0 ここか ここの1に書いてあるスレで
http://mevius.2ch.net/test/read.cgi/tech/1194614600/
http://mevius.2ch.net/test/read.cgi/tech/1194614600/
550デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 12:39:03.49ID:7CKItQkCM プログラマー板で聞いてみます!
551デフォルトの名無しさん (JP 0H3f-ZLad)
2017/06/23(金) 12:40:24.54ID:bga0zZR5H アルゴリズムならC言語かなぁ
理由は、再帰があるから
理由は、再帰があるから
552デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 12:51:15.76ID:7CKItQkCM >>551
ありがとうございます
ありがとうございます
553デフォルトの名無しさん (アウアウカー Sa6b-m1nn)
2017/06/23(金) 13:09:18.89ID:s9DU3vr6a ?
再帰なんてほとんどの言語でできるだろ
できない言語探すほうが難しいのでは
再帰なんてほとんどの言語でできるだろ
できない言語探すほうが難しいのでは
554デフォルトの名無しさん (スップ Sd3f-VrB2)
2017/06/23(金) 13:17:04.39ID:jGFBZEPId >>547
例外が発生するかどうかは環境依存
例外が発生するかどうかは環境依存
555デフォルトの名無しさん (アウーイモ MM9b-+bbG)
2017/06/23(金) 17:25:39.99ID:zs9t5gljM >>552
Javaは難しいものを作り込む言語ではないからね。
Javaは難しいものを作り込む言語ではないからね。
556デフォルトの名無しさん (ブーイモ MM3b-nmmA)
2017/06/23(金) 18:36:24.35ID:9AlljSA6M557デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/23(金) 18:43:11.28ID:cLuj8vNR0 Infの演算決めたヤツアホだよな
せっかくの異常値検出が糞仕様のせいで出来ない
InfなんてほとんどNaN扱いでいいんだよ
1/(1-1) > 0 > 1/-(1-1)
とか決めたヤツ、頭おかしい
せっかくの異常値検出が糞仕様のせいで出来ない
InfなんてほとんどNaN扱いでいいんだよ
1/(1-1) > 0 > 1/-(1-1)
とか決めたヤツ、頭おかしい
558デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/23(金) 18:45:50.11ID:KSkSHD0C0 0 > -1/(1-1) ではなく 0 > 1/-(1-1) で?
559デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/23(金) 19:12:15.59ID:cLuj8vNR0 そう
頭おかしいでしょ?
頭おかしいでしょ?
560デフォルトの名無しさん (ワッチョイ 9711-LvKX)
2017/06/23(金) 19:27:42.95ID:vbPiU/7d0 %%%5,7$$$
}
000-[[[%ER,D,A%%~
}
000-[[[%ER,D,A%%~
561デフォルトの名無しさん (ブーイモ MM3b-nmmA)
2017/06/23(金) 19:34:32.39ID:9AlljSA6M ん?整数?じゃないよね。
そりゃ、ieee754には正のゼロと負のゼロがあるからな。
そりゃ、ieee754には正のゼロと負のゼロがあるからな。
562デフォルトの名無しさん (ワッチョイ d711-NIhq)
2017/06/23(金) 19:44:07.40ID:KSkSHD0C0 ああ 負のゼロの意図で -(1-1) か
563デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/23(金) 21:30:08.71ID:DRFAk1dca >>548
十数年挫折してやっと分かってきたおいらに言わせれば、アルゴリズムは何でも良いから関数型言語で勉強した方がいい。
アルゴリズムの殆どがリストを基本にしてるけど、CもJavaも配列が基本だから挫折しやすい。
一旦リストが基本の言語でアルゴリズム勉強して、それを配列で実現するには?って考えた方がいい。
十数年挫折してやっと分かってきたおいらに言わせれば、アルゴリズムは何でも良いから関数型言語で勉強した方がいい。
アルゴリズムの殆どがリストを基本にしてるけど、CもJavaも配列が基本だから挫折しやすい。
一旦リストが基本の言語でアルゴリズム勉強して、それを配列で実現するには?って考えた方がいい。
564デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/23(金) 22:03:37.03ID:gW02JZGeM565デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/23(金) 22:57:40.45ID:DRFAk1dca566デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/23(金) 22:59:45.35ID:DRFAk1dca567デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/23(金) 23:04:15.20ID:DRFAk1dca >>564
うん。
文法は覚えられるけど、コードがどう言うことしてるのか理解出来ないと思うんだよね。。。
その為の関数型言語なんだが。。。
まあ、CやJavaでコード読めないってなったら関数型言語においで。
そしたら読めるようになるから。
うん。
文法は覚えられるけど、コードがどう言うことしてるのか理解出来ないと思うんだよね。。。
その為の関数型言語なんだが。。。
まあ、CやJavaでコード読めないってなったら関数型言語においで。
そしたら読めるようになるから。
568スッキリ厨 (ワッチョイ ffaa-4OJu)
2017/06/23(金) 23:16:54.40ID:tdHTYauf0 スッキリわかる Java入門 第2版、2014
Cは、ポインタがあるので、ややこしい。
この本を3回読んで、オブジェクト指向をみっちりと学ぶ
Cは、ポインタがあるので、ややこしい。
この本を3回読んで、オブジェクト指向をみっちりと学ぶ
569デフォルトの名無しさん (ワッチョイ 9711-yPTS)
2017/06/23(金) 23:53:50.89ID:afzAOFtI0 >>566
fputs("hoge",stdout)
fputs("hoge",stdout)
570デフォルトの名無しさん (ワッチョイ f7e3-LvKX)
2017/06/24(土) 02:23:58.77ID:sW+IRv2v0571デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/24(土) 05:52:05.44ID:AiSsJYjg0 >>570
そのアルゴリズムがどんな高度なものかによるから答えにくいんだろうが。
基本情報技術者試験用の言語というあたりでたいしたことをしないのはわかるが。
まだどの言語もまともに使えないレベルなんだろう。CとJavaならCをやってからJavaをやった方がコンピュータの理解にはいいけど。
そのアルゴリズムがどんな高度なものかによるから答えにくいんだろうが。
基本情報技術者試験用の言語というあたりでたいしたことをしないのはわかるが。
まだどの言語もまともに使えないレベルなんだろう。CとJavaならCをやってからJavaをやった方がコンピュータの理解にはいいけど。
572デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/24(土) 07:48:16.71ID:SFTuX/e+0573デフォルトの名無しさん (アウアウエー Sadf-h10b)
2017/06/24(土) 07:50:04.53ID:TrIYg7wba Cだとリスト必要な時リストそのものを作らないといけないけど、Javaだとリストクラスのインスタンス作ればいいだけだしね。
574デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/24(土) 07:54:12.89ID:AiSsJYjg0 >>572
アルゴリズムというのがどこまで高度なものを言ってるのかわからないが、Cは適度なところで抑えないと時間切れで他のことができなくなるぞ。
アルゴリズムというのがどこまで高度なものを言ってるのかわからないが、Cは適度なところで抑えないと時間切れで他のことができなくなるぞ。
575デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/24(土) 08:02:26.86ID:i0vCbpkL0 ソートとか検索とか簡単な計算とか
超基本的なやつでしょ?
言語なんて何でもいいよ
超基本的なやつでしょ?
言語なんて何でもいいよ
576デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/24(土) 09:05:31.01ID:SFTuX/e+0577デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/24(土) 09:10:20.82ID:SFTuX/e+0 基本情報技術者はC出行こうと思うんですけど、競技プログラミングもC言語でいいのでしょうか?
578デフォルトの名無しさん (ワッチョイ 576f-CZMg)
2017/06/24(土) 14:53:17.50ID:Px3P/nJx0579デフォルトの名無しさん (ワッチョイ 178e-Lvcy)
2017/06/24(土) 17:35:51.09ID:GiFMFqzr0 アルゴリズムを勉強することが目的なら、言語は何でもいいに一票。
使い慣れたやつじゃないと、言語自体の使い方とかに気を取られて、アルゴリズムの勉強がはかどらない。
ただ、C言語はいろいろと手順が多い傾向があるので、「言語初心者」には適さないと思う。
使い慣れたやつじゃないと、言語自体の使い方とかに気を取られて、アルゴリズムの勉強がはかどらない。
ただ、C言語はいろいろと手順が多い傾向があるので、「言語初心者」には適さないと思う。
580デフォルトの名無しさん (ワッチョイ f7db-XubJ)
2017/06/24(土) 19:57:34.57ID:7Dka8Eta0 昔はpascalだったが
oberonとかどうなってるんだろ
oberonとかどうなってるんだろ
581デフォルトの名無しさん (ワッチョイ ffaa-4OJu)
2017/06/24(土) 23:21:27.81ID:BBTzLwWV0 アルゴリズムは、Ruby で説明する。
型の記述が無いから、Rubyが圧倒的に楽
競技プログラミングでは、Java, C++
基本情報技術者は、Java でいい。
C にはポインタがある分、時間を食うから損
型の記述が無いから、Rubyが圧倒的に楽
競技プログラミングでは、Java, C++
基本情報技術者は、Java でいい。
C にはポインタがある分、時間を食うから損
582デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/24(土) 23:33:11.12ID:AiSsJYjg0 >>581
競技プログラミングは仕様をみたすプログラム作りだから言語は関係ない。
Cについてはキミがポインタを理解してないだけじゃないか。
基本情報技術者試験ではなぜかC言語が一番難しい問題になっているのは謎だが。
競技プログラミングは仕様をみたすプログラム作りだから言語は関係ない。
Cについてはキミがポインタを理解してないだけじゃないか。
基本情報技術者試験ではなぜかC言語が一番難しい問題になっているのは謎だが。
583デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/25(日) 09:19:10.07ID:PrMsbOwj0 >>582
C言語が一番難しいってどういう基準なのでしょうか
C言語が一番難しいってどういう基準なのでしょうか
584デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/25(日) 09:33:58.41ID:wnVI7vr50 >>583
問題をみればわかるでしょ?
問題をみればわかるでしょ?
585デフォルトの名無しさん (スププ Sdbf-VLv6)
2017/06/25(日) 09:53:15.23ID:LyAyGbQ7d Cは一番単純明快でわかりやすいでしょ
586デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/25(日) 10:05:18.30ID:PrMsbOwj0 問題見てもどれも一緒に見えるけど…
587デフォルトの名無しさん (ワッチョイ 9f1e-6no4)
2017/06/25(日) 10:43:25.62ID:OKoNwt4v0 >>579
CASL II でもいいでつか?><
CASL II でもいいでつか?><
588デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/25(日) 11:14:35.21ID:wnVI7vr50 >>586
そうかCもまだよくわからないレベルだったな。
そうかCもまだよくわからないレベルだったな。
589デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/25(日) 11:20:49.47ID:PrMsbOwj0 >>588
Cは分かるんですけど、CとJavaの難しさの比較が出来ません
Cは分かるんですけど、CとJavaの難しさの比較が出来ません
590デフォルトの名無しさん (ワッチョイ 9f1e-6no4)
2017/06/25(日) 12:44:21.11ID:OKoNwt4v0 基本情報技術者試験の過去問見たけど、
COBOL でもいいんじゃね?
COBOL でもいいんじゃね?
591デフォルトの名無しさん (ワッチョイ bf93-bZFw)
2017/06/25(日) 13:04:19.37ID:PrMsbOwj0 >>590
基本情報技術者試験はCで受けます
基本情報技術者試験はCで受けます
592デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/25(日) 15:21:31.61ID:wnVI7vr50 一番簡単なのは昔からアセンブラなんだよな。
593デフォルトの名無しさん (ラクッペ MMcb-bZFw)
2017/06/25(日) 17:09:12.90ID:+wWOGC6CM 何故アセンブラ…
594デフォルトの名無しさん (ワッチョイ d77f-ZLad)
2017/06/25(日) 17:18:27.51ID:crK74dJZ0 問題文に仕様書が付いてくるから暗記がいらない。あまり重箱の隅をつつくような問題が出ない。
595デフォルトの名無しさん (アウアウエー Sadf-h10b)
2017/06/25(日) 18:04:37.90ID:pYBZiqDJa >>593
言語の難易度と問題の難しさでバランス取ってたりして。。。
言語の難易度と問題の難しさでバランス取ってたりして。。。
596デフォルトの名無しさん (ワッチョイ ff6f-QH9v)
2017/06/26(月) 05:39:11.26ID:nrkIqgVb0 単純な仮想CPUのアセンブリ言語だから割と簡単
597デフォルトの名無しさん (スプッッ Sdcb-wk8E)
2017/06/26(月) 06:34:56.32ID:XtO3Dk5zd 受験生に愛されるコメットさん
598デフォルトの名無しさん (ドコグロ MMdf-6no4)
2017/06/26(月) 14:59:45.01ID:nH0wW7kQM カシオのポケコン
599デフォルトの名無しさん (オッペケ Sr0b-mj4H)
2017/06/26(月) 19:43:30.58ID:TF0F3xMAr アセンブラが簡単というのは同意。アーキテクチャにもよるけど単純で罠も少ない
600デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/26(月) 20:41:11.90ID:GM19K0OY0 ふーん
じゃあアセンブラでテトリス作ってみて
じゃあアセンブラでテトリス作ってみて
601デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/26(月) 20:58:03.95ID:Ntea+VQr0 >>600
なんの話かまったく読まずにレスw
なんの話かまったく読まずにレスw
602デフォルトの名無しさん (アウアウカー Sa6b-m1nn)
2017/06/26(月) 21:13:56.64ID:DVB4gtQza 基本情報技術者試験のことだとすると「アーキテクスチャにもよるけど」っておかしくね?
>>599は一般にアセンブラが他の言語より簡単だと言ってるようにみえるんだが
>>599は一般にアセンブラが他の言語より簡単だと言ってるようにみえるんだが
603デフォルトの名無しさん (ワッチョイ b797-+bbG)
2017/06/26(月) 21:47:17.10ID:Ntea+VQr0 >>602
CASLUではないとしてもあの程度のコンピュータのアセンブラなら言語としては単純。
CASLUではないとしてもあの程度のコンピュータのアセンブラなら言語としては単純。
604デフォルトの名無しさん (ワッチョイ 576f-CZMg)
2017/06/26(月) 23:17:34.88ID:PKYMbkgl0 並列動作とか遅延ジャンプとか出てこないし
レジスタの塊みたいな奴に比べりゃ可愛いよな
レジスタの塊みたいな奴に比べりゃ可愛いよな
605デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/26(月) 23:19:06.55ID:31mN8SV/0 Visual Studio community 2017をC言語のコンパイラとして使えないんでしょうか?
606デフォルトの名無しさん (ワッチョイ d77f-ZLad)
2017/06/26(月) 23:21:42.03ID:Th5Kxani0 >>602
当然、COMP-XかCOMETかという話だろう。
当然、COMP-XかCOMETかという話だろう。
607片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6)
2017/06/26(月) 23:27:10.92ID:go0auT85d >>605
C言語にしたいなら、拡張子を.cにしろよ。
C言語にしたいなら、拡張子を.cにしろよ。
608デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/26(月) 23:47:45.66ID:31mN8SV/0 >>607
コンパイラとしてどうやって使っていいのかわかりません。
コードを書いてもどうやって実行すればいいのか解りません・・・
今は勉強用にEasyIDECって言うのを使ってますがこれはプログラムの実行はできるんですが
ファイルを読み込むタイプのプログラムを実行できないしexeファイルも作れません。
勉強しながら早いうちからexeファイルとか作れる環境で慣れたいんですがやりかたがわからなくて・・・
よければ教えてください
コンパイラとしてどうやって使っていいのかわかりません。
コードを書いてもどうやって実行すればいいのか解りません・・・
今は勉強用にEasyIDECって言うのを使ってますがこれはプログラムの実行はできるんですが
ファイルを読み込むタイプのプログラムを実行できないしexeファイルも作れません。
勉強しながら早いうちからexeファイルとか作れる環境で慣れたいんですがやりかたがわからなくて・・・
よければ教えてください
609片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6)
2017/06/27(火) 00:20:49.40ID:aHvsmlwPd >>608
IDE使う前にMSYS2+MinGWのコマンドラインでhello would書いて特訓しろ。
IDE使う前にMSYS2+MinGWのコマンドラインでhello would書いて特訓しろ。
610デフォルトの名無しさん (ワッチョイ ffa2-ZLad)
2017/06/27(火) 00:37:59.30ID:1mHdD+S50 またQZが自演してるな
たのむからゴミコードは出すなよ
たのむからゴミコードは出すなよ
611デフォルトの名無しさん (ワッチョイ 376c-dFnT)
2017/06/27(火) 08:53:16.46ID:ucAV+SpP0612デフォルトの名無しさん (ドコグロ MMdf-6no4)
2017/06/27(火) 09:31:49.14ID:jtm5ziJ2M >>609
MSX2+ とか笑かすわ。
MSX2+ とか笑かすわ。
613デフォルトの名無しさん (ワッチョイ 376c-dFnT)
2017/06/27(火) 10:00:06.40ID:ucAV+SpP0614デフォルトの名無しさん (ワッチョイ 376c-dFnT)
2017/06/27(火) 10:03:11.75ID:ucAV+SpP0 十進カウンタや、JKフリップ・フロップをNANDを組み合わせて作る事は今でもやるんだろ?大学で。
学生実験とか?最近の大学では無いの?
学生実験とか?最近の大学では無いの?
615デフォルトの名無しさん (ワッチョイ f7db-XubJ)
2017/06/27(火) 10:47:01.95ID:ZcFCap/E0 加算器とか情報算数かな
616デフォルトの名無しさん (ワッチョイ 376c-dFnT)
2017/06/27(火) 10:57:18.19ID:ucAV+SpP0 >>615
それ、なんちゅう授業?授業のタイトルは?
それ、なんちゅう授業?授業のタイトルは?
617デフォルトの名無しさん (スップ Sd3f-VrB2)
2017/06/27(火) 12:53:23.72ID:GRUOkSLcd >>612
ジジイ乙
ジジイ乙
618デフォルトの名無しさん (ワッチョイ 170d-NIhq)
2017/06/27(火) 12:54:46.79ID:/HeVfsPd0 ハーフアダー フルアダー を論理回路で
619デフォルトの名無しさん (ワッチョイ 176f-f4dT)
2017/06/27(火) 13:05:58.64ID:IF4g2E0D0 演算器の設計 - 加算器(Adder)
http://news.mynavi.jp/column/architecture/070/
演算器の設計 - キャリールックアヘッドアダー
http://news.mynavi.jp/column/architecture/071/
演算器の設計 - キャリールックアヘッドアダー(2)
http://news.mynavi.jp/column/architecture/072/
パラレルプリフィックスアダー
http://news.mynavi.jp/column/architecture/073/
パラレルプリフィックスアダー(2)
http://news.mynavi.jp/column/architecture/074/
パラレルプリフィックスアダー(3)
http://news.mynavi.jp/column/architecture/075/
Lingアダー
http://news.mynavi.jp/column/architecture/076/
アダーの実装に関して
http://news.mynavi.jp/column/architecture/077/
http://news.mynavi.jp/column/architecture/070/
演算器の設計 - キャリールックアヘッドアダー
http://news.mynavi.jp/column/architecture/071/
演算器の設計 - キャリールックアヘッドアダー(2)
http://news.mynavi.jp/column/architecture/072/
パラレルプリフィックスアダー
http://news.mynavi.jp/column/architecture/073/
パラレルプリフィックスアダー(2)
http://news.mynavi.jp/column/architecture/074/
パラレルプリフィックスアダー(3)
http://news.mynavi.jp/column/architecture/075/
Lingアダー
http://news.mynavi.jp/column/architecture/076/
アダーの実装に関して
http://news.mynavi.jp/column/architecture/077/
620デフォルトの名無しさん (ワッチョイ 9fc1-NIhq)
2017/06/27(火) 17:08:46.44ID:HjxjU0LK0 exeの作り方は結局わかりませんでしたが
textファイルを読み込んで結果を吐き出すプログラムはvisual stadioで何とか実行できました
スレ汚しすみませんでした
textファイルを読み込んで結果を吐き出すプログラムはvisual stadioで何とか実行できました
スレ汚しすみませんでした
621デフォルトの名無しさん (ドコグロ MMdf-6no4)
2017/06/27(火) 17:43:30.17ID:jtm5ziJ2M プロジェクトの下の debug か release の下に出来てるだろ。
622デフォルトの名無しさん (ドコグロ MMdf-Stqb)
2017/06/27(火) 17:57:16.27ID:HOHNeZU7M623デフォルトの名無しさん (ワッチョイ 9fc1-NIhq)
2017/06/27(火) 18:21:29.40ID:HjxjU0LK0624デフォルトの名無しさん (オイコラミネオ MM4f-hFIA)
2017/06/27(火) 19:29:10.53ID:eugTAuNDM char *hoge にファイル名が入っていて、
printf("%s",hoge);とするとファイル名が表示されます
このファイル名を
http://dqn.sakusakutto.jp/2013/04/c_kr_stack.html
のpush()に引数として入れたいのですが、型が合いません
どなたか教えて下さい
printf("%s",hoge);とするとファイル名が表示されます
このファイル名を
http://dqn.sakusakutto.jp/2013/04/c_kr_stack.html
のpush()に引数として入れたいのですが、型が合いません
どなたか教えて下さい
625デフォルトの名無しさん (オイコラミネオ MM4f-hFIA)
2017/06/27(火) 20:00:27.36ID:7v0X4ZTWM すみません自決しました
626デフォルトの名無しさん (ワッチョイ 179a-VrB2)
2017/06/27(火) 20:07:10.41ID:bJ//gE7J0 自決しちゃったのか
627デフォルトの名無しさん (ワッチョイ 576f-CZMg)
2017/06/27(火) 22:36:09.51ID:pewKiBDj0 御冥福を
628デフォルトの名無しさん (ワッチョイ f7e3-LvKX)
2017/06/27(火) 22:38:45.02ID:YYgE0wDj0 せっかくだから辞世の句を詠んでからにしよう
629デフォルトの名無しさん (ワッチョイ 5723-LvKX)
2017/06/28(水) 01:29:20.62ID:CBwCtPCV0 >>608
EasyIDEC ってこれのことだよな?
http://9cguide.appspot.com/p_9cide.html
だったらこれはコンパイラがtccだからちゃんとexe作った上で実行している筈だしファイルの読み書きも全く問題なくできる筈だぞ。
EasyIDEC ってこれのことだよな?
http://9cguide.appspot.com/p_9cide.html
だったらこれはコンパイラがtccだからちゃんとexe作った上で実行している筈だしファイルの読み書きも全く問題なくできる筈だぞ。
630デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/28(水) 07:58:22.81ID:na5KYPACa >>608
コマンドラインからコンパイルしたいならVCは何かバッチ実行したらclでコンパイル出来たはず。
面倒だったらbccに乗り換えて見ては。
setbccってツールも併せて検索して使えばパス通しまでしてくれる。
コマンドラインからコンパイルしたいならVCは何かバッチ実行したらclでコンパイル出来たはず。
面倒だったらbccに乗り換えて見ては。
setbccってツールも併せて検索して使えばパス通しまでしてくれる。
631デフォルトの名無しさん (ワッチョイ f7db-XubJ)
2017/06/28(水) 10:17:50.38ID:xb2y2Mwj0 ベン図とかカルノー図とか
スレチ過ぐる
スレチ過ぐる
632デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/28(水) 17:26:43.67ID:duiTP6800 >>629
自分ではtxtファイルの読み込み方が解りませんでした・・・
あとこんな感じで使えたらいいんですけど
http://9cguide.appspot.com/easyidec7.jpg
自分の環境(win7)だと立ち上げた後
http://light.dotup.org/uploda/light.dotup.org459505.jpg
こんな感じでスクリプトエラーが9個ぐらい出るし理想の使い方ができないんです・・・
>>630
Borland C++ Compiler 5.5がもう配布されてなくて代わりに
https://www.embarcadero.com/jp/free-tools?redirect=http://www.codegear.com/jp/downloads/free/cppbuilder
こんなのが配布されていてこれのC++Compilerをダウンロードしてみたんですがなんか違う気がします。
http://forest.watch.impress.co.jp/article/2002/10/24/cwohajimeyou.html
これもBorland C++ Compiler 5.5を要求されますが参考サイトと同じような設定ができなくてあきらめた経緯もあります。
今はvisual studio community 2017を使っていますがエラーを山のように吐いてくれて勉強になるしテキストファイルを読み込んだり吐き出したりする
プログラムも作れたりととりあえず初心者として目指すレベルには十分やりたい事ができるのでこれでいいかなと思っています。
レスありがとうございました。
自分ではtxtファイルの読み込み方が解りませんでした・・・
あとこんな感じで使えたらいいんですけど
http://9cguide.appspot.com/easyidec7.jpg
自分の環境(win7)だと立ち上げた後
http://light.dotup.org/uploda/light.dotup.org459505.jpg
こんな感じでスクリプトエラーが9個ぐらい出るし理想の使い方ができないんです・・・
>>630
Borland C++ Compiler 5.5がもう配布されてなくて代わりに
https://www.embarcadero.com/jp/free-tools?redirect=http://www.codegear.com/jp/downloads/free/cppbuilder
こんなのが配布されていてこれのC++Compilerをダウンロードしてみたんですがなんか違う気がします。
http://forest.watch.impress.co.jp/article/2002/10/24/cwohajimeyou.html
これもBorland C++ Compiler 5.5を要求されますが参考サイトと同じような設定ができなくてあきらめた経緯もあります。
今はvisual studio community 2017を使っていますがエラーを山のように吐いてくれて勉強になるしテキストファイルを読み込んだり吐き出したりする
プログラムも作れたりととりあえず初心者として目指すレベルには十分やりたい事ができるのでこれでいいかなと思っています。
レスありがとうございました。
633デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/28(水) 18:02:23.14ID:duiTP6800 >>632はこっちじゃなくて
http://forest.watch.impress.co.jp/article/2002/10/24/cwohajimeyou.html
こっちでした
http://forest.watch.impress.co.jp/article/2007/02/07/cwohajimeyou2.html
EasyIDECも写真のように右にいろいろ出るなら使いたいんですけど、よく解らないんですよね・・・
http://forest.watch.impress.co.jp/article/2002/10/24/cwohajimeyou.html
こっちでした
http://forest.watch.impress.co.jp/article/2007/02/07/cwohajimeyou2.html
EasyIDECも写真のように右にいろいろ出るなら使いたいんですけど、よく解らないんですよね・・・
634デフォルトの名無しさん (アウアウウー Sa9b-h10b)
2017/06/28(水) 20:06:32.41ID:AA6Kh2Ana >>632
setbcc新しい方に対応してないんか。
フォルダ名書き換えるだけやから対応すりゃ良いのにね。
gccとかは-oファイル名ってしないとa.exeになっちゃうけど、確かインストール時にパス通してくれるはず。
(最悪、binだけ自分でパス通せば行けたはず。ライブラリのパスをコンパイラの設定ファイルに通すとか、そういう面倒はなかった)
setbcc新しい方に対応してないんか。
フォルダ名書き換えるだけやから対応すりゃ良いのにね。
gccとかは-oファイル名ってしないとa.exeになっちゃうけど、確かインストール時にパス通してくれるはず。
(最悪、binだけ自分でパス通せば行けたはず。ライブラリのパスをコンパイラの設定ファイルに通すとか、そういう面倒はなかった)
635デフォルトの名無しさん (ワッチョイ d723-ZLad)
2017/06/28(水) 22:11:54.96ID:SRIFWNkc0 >>633
ずぶの素人なんだろ?
だったら、そういうのはチュートリアルを一つずつやっていくもんだ。
https://msdn.microsoft.com/ja-jp/library/szatc41e(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/zftbwa2b(v=vs.110).aspx
ただしMSはVC++にはやる気を出してない(基本あれはプロ用)なので、
チュートリアルが整備されているC#等を使ってIDEの使い方を学んだ方がいい。
https://msdn.microsoft.com/ja-jp/library/jj153219.aspx
https://msdn.microsoft.com/ja-jp/library/dd492135.aspx
https://msdn.microsoft.com/ja-jp/library/dd492171.aspx
IDEに関してはVSがかなりいいから、そんな古いマイナーIDEなんて使わずに、
最初からVSでやったほうがいい。
ただ、環境整備をずぶの素人がやるのは辛い。
というか、周りに誰かいないのか?居るのなら拝み倒してやってもらえ。
そんなところで苦労しても何の足しにもならない。
とっとと実行環境を整備して、ガンガンコード書いて動かして試さないと意味が無い。
周りに誰も居ないのなら、マジでチュートリアルを頭から全部一つずつやっていけ。
そしたらいつか、ああもういいか、って思うときが来るから、
その時にチュートリアルを卒業し、自分のプロジェクトの開発を始めろ。
ずぶの素人なんだろ?
だったら、そういうのはチュートリアルを一つずつやっていくもんだ。
https://msdn.microsoft.com/ja-jp/library/szatc41e(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/zftbwa2b(v=vs.110).aspx
ただしMSはVC++にはやる気を出してない(基本あれはプロ用)なので、
チュートリアルが整備されているC#等を使ってIDEの使い方を学んだ方がいい。
https://msdn.microsoft.com/ja-jp/library/jj153219.aspx
https://msdn.microsoft.com/ja-jp/library/dd492135.aspx
https://msdn.microsoft.com/ja-jp/library/dd492171.aspx
IDEに関してはVSがかなりいいから、そんな古いマイナーIDEなんて使わずに、
最初からVSでやったほうがいい。
ただ、環境整備をずぶの素人がやるのは辛い。
というか、周りに誰かいないのか?居るのなら拝み倒してやってもらえ。
そんなところで苦労しても何の足しにもならない。
とっとと実行環境を整備して、ガンガンコード書いて動かして試さないと意味が無い。
周りに誰も居ないのなら、マジでチュートリアルを頭から全部一つずつやっていけ。
そしたらいつか、ああもういいか、って思うときが来るから、
その時にチュートリアルを卒業し、自分のプロジェクトの開発を始めろ。
636デフォルトの名無しさん (ワッチョイ d723-ZLad)
2017/06/28(水) 22:28:47.16ID:SRIFWNkc0 >>633
ああごめん、VC++もチュートリアルあったわ。
いつもどおりハロワだが。
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx
C++だからstdafx.hになっているが、
VC++はそこらへんごちゃ混ぜに出来るので(この意味は今は分からなくていい)
#include "stdio.h" すれば printf とかも普通に使えるはず。
まあがんばれ。
ああごめん、VC++もチュートリアルあったわ。
いつもどおりハロワだが。
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx
C++だからstdafx.hになっているが、
VC++はそこらへんごちゃ混ぜに出来るので(この意味は今は分からなくていい)
#include "stdio.h" すれば printf とかも普通に使えるはず。
まあがんばれ。
637デフォルトの名無しさん (ワッチョイ d7c1-NIhq)
2017/06/28(水) 23:04:41.12ID:duiTP6800 >>636
ありがとうございます
チュートリアル読みました。
エラーが出るとはいえEasyIDECを使ってある程度流れがわかっていたのとvisualstudioを何時間か弄っていたので
チュートリアルは多分理解できたと思います
今はwin32コンソールアプリケーションの空のプロジェクトを作ってソースファイルのところに.cファイルやtextファイルを追加する感じで使っていて
それなりに自分の目的にあうようには使えてるとは思います・・・多分
だからコードをひたすら書いて、理解を深めようと思っているところです。
また解らないことがあったら質問させてください!!
ありがとうございます
チュートリアル読みました。
エラーが出るとはいえEasyIDECを使ってある程度流れがわかっていたのとvisualstudioを何時間か弄っていたので
チュートリアルは多分理解できたと思います
今はwin32コンソールアプリケーションの空のプロジェクトを作ってソースファイルのところに.cファイルやtextファイルを追加する感じで使っていて
それなりに自分の目的にあうようには使えてるとは思います・・・多分
だからコードをひたすら書いて、理解を深めようと思っているところです。
また解らないことがあったら質問させてください!!
638デフォルトの名無しさん (ワッチョイ d723-ZLad)
2017/06/28(水) 23:55:03.72ID:SRIFWNkc0 >>637
いや見りゃ分かるが君はこのスレで質問すべきレベルに達してない。
つっても他に聞く相手が居ないのならどうしようもないが、
質問されてもさすがに相手するのが嫌になるレベルだというのは自覚しろ。
だから質問したところで回答があるかどうかはまた別の話だ。
君は分かっていないだろうが、
レベルの低い奴(今回は君)に対して回答することはスレに悪影響を及ぼす。
単純には、そういうレベルの奴が集まる方向に圧力がかかり、結果的に上級者が逃げ出す。
俺はこのスレの常連ではないから、俺がこのスレに対して影響を及ぼすのは本意ではない。
だから今後は俺は君の質問は無視する。
それでも君が質問するのも自由だし、それに対して回答するのも他住民の自由だが、
見たとおり、適当にあしらわれて終わりになるはずだ。
それがスレのレベルを下げないための適切な行動だからだ。
ところが君はどうやら本気で学びたいようだ。
だからとりあえず回答したが、今後は俺は回答しない。自分で勝手に学べ。
今はそれが出来るだけのリソースがWeb上にある。
最新IDEとWebを使うのが一番無駄に引っかからなくていいからそうしろ。
IDE自体の質問なら、VSならスレがある。
というかバージョン毎に12スレもあるからそっちで聞け。
http://mevius.2ch.net/test/read.cgi/tech/1491618774/
> win32コンソールアプリケーション
多分、1-100まで足してみようとか、そういうのからやってるんだろ?
それならこれで合ってるから、まあがんばれ。
とりあえずブレークポイント/ステップ実行/ウオッチが使えれば何とかなるだろう。
後は適当に弄繰り回していれば分かるようになる。
IDEなんて基本的に使い方は同じだから、最初から高機能IDE(今回はVS)に慣れたほうがいい。
いや見りゃ分かるが君はこのスレで質問すべきレベルに達してない。
つっても他に聞く相手が居ないのならどうしようもないが、
質問されてもさすがに相手するのが嫌になるレベルだというのは自覚しろ。
だから質問したところで回答があるかどうかはまた別の話だ。
君は分かっていないだろうが、
レベルの低い奴(今回は君)に対して回答することはスレに悪影響を及ぼす。
単純には、そういうレベルの奴が集まる方向に圧力がかかり、結果的に上級者が逃げ出す。
俺はこのスレの常連ではないから、俺がこのスレに対して影響を及ぼすのは本意ではない。
だから今後は俺は君の質問は無視する。
それでも君が質問するのも自由だし、それに対して回答するのも他住民の自由だが、
見たとおり、適当にあしらわれて終わりになるはずだ。
それがスレのレベルを下げないための適切な行動だからだ。
ところが君はどうやら本気で学びたいようだ。
だからとりあえず回答したが、今後は俺は回答しない。自分で勝手に学べ。
今はそれが出来るだけのリソースがWeb上にある。
最新IDEとWebを使うのが一番無駄に引っかからなくていいからそうしろ。
IDE自体の質問なら、VSならスレがある。
というかバージョン毎に12スレもあるからそっちで聞け。
http://mevius.2ch.net/test/read.cgi/tech/1491618774/
> win32コンソールアプリケーション
多分、1-100まで足してみようとか、そういうのからやってるんだろ?
それならこれで合ってるから、まあがんばれ。
とりあえずブレークポイント/ステップ実行/ウオッチが使えれば何とかなるだろう。
後は適当に弄繰り回していれば分かるようになる。
IDEなんて基本的に使い方は同じだから、最初から高機能IDE(今回はVS)に慣れたほうがいい。
639デフォルトの名無しさん (ワッチョイ 2ea2-wjSU)
2017/06/29(木) 00:08:02.54ID:GSOqdYxT0 こんな感じでQZが煽られ発狂
640デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 08:26:00.68ID:7eb8fA4L0641デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 08:43:40.13ID:7eb8fA4L0 stdafx.hをみて恐れをなしてVisual Basicを選択したのを思い出した。
その後、Obj-C -> Swiftに流れたが、今VC++さわれば楽しめるかもしれん。
ただし、Microsoft仕様のC++が今どうなってるのか?不安。
それと、Windows環境ってAPI Referenceを気軽に検索する方法があるのか?
俺がVC++触っていた時は、msdn developer’s networkっていう重いAPI Viewerがインストールされて、ちょっと検索するにもエライ待たされて閉口したんだが。
その後、Obj-C -> Swiftに流れたが、今VC++さわれば楽しめるかもしれん。
ただし、Microsoft仕様のC++が今どうなってるのか?不安。
それと、Windows環境ってAPI Referenceを気軽に検索する方法があるのか?
俺がVC++触っていた時は、msdn developer’s networkっていう重いAPI Viewerがインストールされて、ちょっと検索するにもエライ待たされて閉口したんだが。
642デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 08:48:30.60ID:7eb8fA4L0 VC++って、C++11/14/17に準拠してるんだって。部分的に。
VC++も進化してるんだ。知らんかった。
VC++も進化してるんだ。知らんかった。
643デフォルトの名無しさん (スップ Sd62-Pf3w)
2017/06/29(木) 08:49:10.03ID:kjfsQTVLd そう、部分的に
644デフォルトの名無しさん (アウアウエー Sa4a-kiAr)
2017/06/29(木) 09:07:42.11ID:OIGMpkDEa その辺の準拠率はg++かclangだな。
c99対応コンパイラは皆無だっけ?
c99対応コンパイラは皆無だっけ?
645デフォルトの名無しさん (ワッチョイ 6e6f-UtiB)
2017/06/29(木) 09:09:29.51ID:NPwerNyC0646デフォルトの名無しさん (スプッッ Sdc2-upg+)
2017/06/29(木) 09:19:32.95ID:Tswd9qCud emacsから離れられん
647デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 09:20:48.70ID:7eb8fA4L0 CCmdTarget UIResponder
CWnd UIWindow
CView UIView
CEditView UITextView
CButton UIButton
CWinApp UIApplication
MFCとUIKitの対応関係はこんな感じか?
クラス階層図はかなり違うなぁ。継承を使ってカスタマイズしていく設計と、デリゲートを使ってカスタマイズしていく設計との違いから来るのかな?
CWnd UIWindow
CView UIView
CEditView UITextView
CButton UIButton
CWinApp UIApplication
MFCとUIKitの対応関係はこんな感じか?
クラス階層図はかなり違うなぁ。継承を使ってカスタマイズしていく設計と、デリゲートを使ってカスタマイズしていく設計との違いから来るのかな?
648デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 09:26:19.20ID:7eb8fA4L0 VC++がプロ仕様と言うのだったら、Xcodeも同じ様なもんだな。
String構造体が、
Conforms To
Comparable
CustomDebugStringConvertible
CustomPlaygroundQuickLookable
CustomReflectable
CustomStringConvertible
CVarArg
Equatable
ExpressibleByExtendedGraphemeClusterLiteral
ExpressibleByStringLiteral
ExpressibleByUnicodeScalarLiteral
Hashable
LosslessStringConvertible
TextOutputStream
TextOutputStreamable
こんだけのプロトコルに準拠しているって、仕様を見て、どれだけのヤツがピントくるかな?
おまけに山ほどイニシャライザがあって、初心者はびっくりするだろなぁ。
C++から来た奴は、構造体にイニシャライザ?って思うのかな!
String構造体が、
Conforms To
Comparable
CustomDebugStringConvertible
CustomPlaygroundQuickLookable
CustomReflectable
CustomStringConvertible
CVarArg
Equatable
ExpressibleByExtendedGraphemeClusterLiteral
ExpressibleByStringLiteral
ExpressibleByUnicodeScalarLiteral
Hashable
LosslessStringConvertible
TextOutputStream
TextOutputStreamable
こんだけのプロトコルに準拠しているって、仕様を見て、どれだけのヤツがピントくるかな?
おまけに山ほどイニシャライザがあって、初心者はびっくりするだろなぁ。
C++から来た奴は、構造体にイニシャライザ?って思うのかな!
649デフォルトの名無しさん (ワッチョイ 6e6f-UtiB)
2017/06/29(木) 09:37:55.49ID:NPwerNyC0 https://msdn.microsoft.com/ja-jp/library/system.string(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1
650デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/29(木) 10:36:02.44ID:7eb8fA4L0 >>649
あのぉー。Visual Studioのリファレンスって、offlineでも引く事できますか?
例えば、4Gの携帯回線が細い場所でも、リファレンスを閲覧出来るのでしょうか?
リファレンスをローカルの開発機へインストールできますか?
あのぉー。Visual Studioのリファレンスって、offlineでも引く事できますか?
例えば、4Gの携帯回線が細い場所でも、リファレンスを閲覧出来るのでしょうか?
リファレンスをローカルの開発機へインストールできますか?
651デフォルトの名無しさん (ワッチョイ 6e6f-UtiB)
2017/06/29(木) 10:52:35.22ID:NPwerNyC0 オフラインのヘルプビューアもあるけどコンテンツ内容が古い
オンラインでもそれほど重くはないので4G回線ならWebでも問題ないだろ
オンラインでもそれほど重くはないので4G回線ならWebでも問題ないだろ
652デフォルトの名無しさん (ワッチョイ 1911-CicO)
2017/06/29(木) 17:10:15.78ID:wGgfLCtF0 ***SLAMO***
}
000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA"
001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b>
002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>>
3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}}
---
[[[C%%]]]
}
000-"5802"/"α"="0.1888412376155482"%en{
}
000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA"
001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b>
002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>>
3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}}
---
[[[C%%]]]
}
000-"5802"/"α"="0.1888412376155482"%en{
653デフォルトの名無しさん (ワッチョイ e23d-t7cX)
2017/06/30(金) 00:41:38.72ID:OFeLP1+80 以下のコードように、呼び出し先の関数で作った配列をポインタとしてmain関数に返すプログラムでwarningが出るので、調べてみたところ
・呼び出し先の変数は一時的に保管される領域に入っている
・一時的に保管される領域はmain関数に戻ると消える
・main関数にリターンされるのはあくまで配列の開始位置なので、この書き方では配列が消える恐れがある
という情報を目にしました。
以下のようなコードであればどのように改善すればいいでしょうか。
宜しくお願いします。
/*main.c*/
int main()
{
int *hoge=sub();
}
/*sub.c*/
int *sub()
{
int b[10];
return b;
}
・呼び出し先の変数は一時的に保管される領域に入っている
・一時的に保管される領域はmain関数に戻ると消える
・main関数にリターンされるのはあくまで配列の開始位置なので、この書き方では配列が消える恐れがある
という情報を目にしました。
以下のようなコードであればどのように改善すればいいでしょうか。
宜しくお願いします。
/*main.c*/
int main()
{
int *hoge=sub();
}
/*sub.c*/
int *sub()
{
int b[10];
return b;
}
654デフォルトの名無しさん (アウアウカー Sae9-MMk3)
2017/06/30(金) 01:03:42.29ID:obNwHzFda mainにbの配列を宣言してsubにポインタを渡し中身を書き換える
もしくは
sub内のbをstatic intにする
もしくは
sub内のbをstatic intにする
655デフォルトの名無しさん (ブーイモ MM62-iZ7+)
2017/06/30(金) 01:17:27.06ID:RtmcppLUM もしくは
mallocで確保した領域を返し、freeするのは呼び出し元の責任にする
mallocで確保した領域を返し、freeするのは呼び出し元の責任にする
656デフォルトの名無しさん (スップ Sdc2-HpRm)
2017/06/30(金) 04:27:36.41ID:8CWbZ/OEd null pointer
657デフォルトの名無しさん (ワッチョイ 62d7-8IVh)
2017/06/30(金) 05:56:01.96ID:sS6ajRjO0 呼び出し元で寿命を管理すべきなので、
mainに int b[10]; と宣言してsubにbのポインタを渡す
mainに int b[10]; と宣言してsubにbのポインタを渡す
658デフォルトの名無しさん (ドコグロ MMe1-oSf6)
2017/06/30(金) 08:37:20.11ID:Zx9hbpt8M 別にどっちで管理してもいい
659デフォルトの名無しさん (ワッチョイ e23d-t7cX)
2017/06/30(金) 09:33:09.99ID:OFeLP1+80660デフォルトの名無しさん (ワッチョイ cd82-nP2k)
2017/06/30(金) 09:40:38.20ID:b/sHRIH80 構造体で包んで値返し
typedef struct { int b[10]; } foo_t;
foo_t sub(void) { foo_t a; return a; }
typedef struct { int b[10]; } foo_t;
foo_t sub(void) { foo_t a; return a; }
661デフォルトの名無しさん (ブーイモ MM62-iZ7+)
2017/06/30(金) 09:44:31.82ID:RtmcppLUM >>657
strdup使わない派?
strdup使わない派?
662デフォルトの名無しさん (スプッッ Sdc2-upg+)
2017/06/30(金) 10:43:50.08ID:12icUynjd Cでprintfみたいな可変引数関数のラッパー
を可変引数で作りたいです。
コンパイラの実装に依存しない書き方って
有りますか?
を可変引数で作りたいです。
コンパイラの実装に依存しない書き方って
有りますか?
663デフォルトの名無しさん (JP 0Hc9-iZ7+)
2017/06/30(金) 11:24:03.18ID:zIElKXKqH >>662
それができないからvprintfみたいなラップされる専用の関数ができた
それができないからvprintfみたいなラップされる専用の関数ができた
664デフォルトの名無しさん (スプッッ Sdc2-upg+)
2017/06/30(金) 11:37:38.99ID:12icUynjd やっぱそうですか、残念。
ターゲットの関数はソース無いし、
vprintfみたいなのは用意されてないです。
ターゲットの関数はソース無いし、
vprintfみたいなのは用意されてないです。
665デフォルトの名無しさん (スップ Sd62-HpRm)
2017/06/30(金) 11:51:41.54ID:vgqCM8Lxd >>656
ガッ
ガッ
666デフォルトの名無しさん (ワッチョイ c90d-nP2k)
2017/06/30(金) 12:52:04.96ID:X/gd7WZi0 可変引数関数を記述するだけなら stdarg.h で事足りるけど
printf のフォーマット文字列解釈して 文字に置き換える部分を
そのまま利用したいとなると、vsprintf の有無次第だよな・・・
printf のフォーマット文字列解釈して 文字に置き換える部分を
そのまま利用したいとなると、vsprintf の有無次第だよな・・・
667デフォルトの名無しさん (ワッチョイ 62d7-8IVh)
2017/06/30(金) 17:00:50.82ID:sS6ajRjO0 >>661
状況によるけど、malloc/freeはコストが大きいので、使わなくて済むなら使わない
状況によるけど、malloc/freeはコストが大きいので、使わなくて済むなら使わない
668デフォルトの名無しさん (ワッチョイ 2d6c-ddzC)
2017/06/30(金) 17:07:02.99ID:BBkM2EA10669デフォルトの名無しさん (ワッチョイ 62d7-8IVh)
2017/06/30(金) 17:27:47.82ID:sS6ajRjO0670デフォルトの名無しさん (ドコグロ MM0a-zH8r)
2017/06/30(金) 18:45:37.58ID:I/Y6yRYUM671デフォルトの名無しさん (ワッチョイ c123-wjSU)
2017/06/30(金) 20:10:41.26ID:caqhD/Ov0 int b[10]とmallocではmallocの方が常にコストは高いけどな。
前者は最適化無しで1命令、最適化後は0命令。
後者はK&R的軽量実装でも10〜1000命令は必要になる。
10%ってのは他含めてコミコミの計測結果だろ。確保のみなら喧嘩にならん。
前者は最適化無しで1命令、最適化後は0命令。
後者はK&R的軽量実装でも10〜1000命令は必要になる。
10%ってのは他含めてコミコミの計測結果だろ。確保のみなら喧嘩にならん。
672デフォルトの名無しさん (オッペケ Sr71-OZRj)
2017/06/30(金) 20:23:10.05ID:Hz970lyir ガベージコレクタだって高コストだしな。自分でメモリを管理するのが一番安いw
673デフォルトの名無しさん (ワッチョイ 6df4-nP2k)
2017/06/30(金) 20:33:40.33ID:APIJ3en80 アセンブラ時代思い出すなぁ。
674デフォルトの名無しさん (ワッチョイ b16f-pT0u)
2017/06/30(金) 23:38:17.22ID:yb1eWQ160 コストが高いからalloca()が出来たんだし
675デフォルトの名無しさん (ブーイモ MMb6-DhWx)
2017/07/01(土) 00:12:13.52ID:bUPyefPgM >>638
もちつけ。おまいださいぜ
もちつけ。おまいださいぜ
676デフォルトの名無しさん (スップ Sd62-HpRm)
2017/07/01(土) 02:56:34.34ID:PLwoIwzod Windows環境のMINGWです
\nをASCII文字コードにするとASCII表の通り10になりますが、
Windowsの改行コードCR+LFですよね?
UNIX環境ならLFつまり10になるのはわかりますが、何故Windows環境でも10なのでしょうか?
\nをASCII文字コードにするとASCII表の通り10になりますが、
Windowsの改行コードCR+LFですよね?
UNIX環境ならLFつまり10になるのはわかりますが、何故Windows環境でも10なのでしょうか?
677デフォルトの名無しさん (ワッチョイ 017f-wjSU)
2017/07/01(土) 08:20:28.99ID:PrUYVLVg0 \nをprintしたりした場合に改行になるだけであって、\nが10なのは変わらない。
678デフォルトの名無しさん (スップ Sd62-HpRm)
2017/07/01(土) 08:40:33.80ID:EmOg/tlYd679デフォルトの名無しさん (ワッチョイ 42af-2NZ/)
2017/07/01(土) 13:13:17.56ID:FWbGo/9j0 \nは改行を表しその値は(ASCIIなら)10
printfとかの入出力するときにunixなら何もしないがwindowsではCR+LFと変換する
printfとかの入出力するときにunixなら何もしないがwindowsではCR+LFと変換する
680デフォルトの名無しさん (ワッチョイ b16f-pT0u)
2017/07/01(土) 14:26:57.37ID:jAe4uSb20 出力先のファイルポインタがクックドモードの時だけ変換される
681デフォルトの名無しさん (スップ Sd62-HpRm)
2017/07/01(土) 15:56:17.04ID:9IpZzPucd682デフォルトの名無しさん (ワッチョイ 1911-CicO)
2017/07/04(火) 18:08:24.69ID:K9JgJTrT0 [[[C++]]]
}
001-GOM#\%71/#1,16,2,M,BL,SAJ%\*%U,615325,6,11,62,364,3,21,673,!\0.1,11.5,78,21,6%<<<\BSA\>0>>>%11.27,21,0,73.561,2,3,4,6,1,{\!end
}
001-GOM#\%71/#1,16,2,M,BL,SAJ%\*%U,615325,6,11,62,364,3,21,673,!\0.1,11.5,78,21,6%<<<\BSA\>0>>>%11.27,21,0,73.561,2,3,4,6,1,{\!end
683デフォルトの名無しさん (ワッチョイ 6997-hy1C)
2017/07/04(火) 23:36:19.93ID:ydrc2aV60 テキストファイルは、CR + LFでも読み込んだらLFだけになる。書き込むときCR + LFになる
バイナリファイルは、そんなことにならない
テキストエリアで改行するなど、ファイルとは関係ない場合、CRが必要になる場合がある
バイナリファイルは、そんなことにならない
テキストエリアで改行するなど、ファイルとは関係ない場合、CRが必要になる場合がある
684デフォルトの名無しさん (ドコグロ MM0a-oSf6)
2017/07/05(水) 12:59:27.11ID:63hLHVD1M 初心者の誤った回答の典型
685デフォルトの名無しさん (ワッチョイ 6e1c-4/kT)
2017/07/05(水) 15:35:27.26ID:4h6UtxrL0 ファイルの属性じゃねえもんな
686デフォルトの名無しさん (ワッチョイ 7723-Y2Kr)
2017/07/06(木) 04:58:28.75ID:pM9IP2NJ0 教えて下さいm(_ _"m)
size_t n;
n = (int)n < 0 ? -n : n; /* quick absolute value check */
"<" や "? :" の演算子は調べて分かったのですが、(int)n の部分は
どういう処理を行いますか?
intって宣言するものが、かっこで囲まれていて、なんだこれ!
っていう状態です。
size_t n;
n = (int)n < 0 ? -n : n; /* quick absolute value check */
"<" や "? :" の演算子は調べて分かったのですが、(int)n の部分は
どういう処理を行いますか?
intって宣言するものが、かっこで囲まれていて、なんだこれ!
っていう状態です。
687デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 05:47:36.98ID:CwAIhoRS0 キャストだよ
本来size_t型のnを、その場だけintてことにしてくれって要求
ただし本当にintになっちまうわけじゃないから
(int)n = n < 0 ? -n : n; みたいに
代入先にしようとするとエラーだ
コンパイラによっては通るのがあるけどそれは非標準
本来size_t型のnを、その場だけintてことにしてくれって要求
ただし本当にintになっちまうわけじゃないから
(int)n = n < 0 ? -n : n; みたいに
代入先にしようとするとエラーだ
コンパイラによっては通るのがあるけどそれは非標準
688デフォルトの名無しさん (ワッチョイ 7723-Y2Kr)
2017/07/06(木) 05:57:41.52ID:pM9IP2NJ0689デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/06(木) 08:10:55.85ID:rcg+ZZ7N0 何がしたいコードなのか意味がわからない
690デフォルトの名無しさん (ブーイモ MMbf-w3/P)
2017/07/06(木) 08:12:31.54ID:TeNYF/iwM nが負になりうるならなんでsize_tで宣言するんだろ
691デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
2017/07/06(木) 08:30:53.10ID:KLsItAo20 ssize_t が標準に欲しいところだよね。
692デフォルトの名無しさん (ワッチョイ 176f-Fmay)
2017/07/06(木) 08:36:29.39ID:c6kgU9bA0 キャストを覚えろ
キャストしない事を覚えろ
キャストをすこしだけする事を覚えろ
キャストしない事を覚えろ
キャストをすこしだけする事を覚えろ
693デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/06(木) 08:37:13.77ID:kIxohS2+M694デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/06(木) 08:41:41.93ID:kIxohS2+M >>691
sizeof と言うコンパイラ組込演算子の戻り値の型がコンパイラに組み込まれていない違和感
sizeof と言うコンパイラ組込演算子の戻り値の型がコンパイラに組み込まれていない違和感
695デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 09:45:19.82ID:CwAIhoRS0696デフォルトの名無しさん (JP 0Hab-inuj)
2017/07/06(木) 11:03:13.91ID:TUAsW00PH >>693
出典はここだな。
https://stackoverflow.com/questions/10204471/convert-char-array-to-a-int-number-in-c
問1: この回答者がnの絶対値をとりたくなったときの気持ちを3行で答えよ。
出典はここだな。
https://stackoverflow.com/questions/10204471/convert-char-array-to-a-int-number-in-c
問1: この回答者がnの絶対値をとりたくなったときの気持ちを3行で答えよ。
697デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/06(木) 12:41:49.84ID:kIxohS2+M >>695
> いや組み込まれているが
「コンパイラ(プリプロセッサじゃなくて)」には組み込まれてないだろ
> それが具体的に何型なのかを
> コンパイラの実装者が明らかにせよと
> 規格が要求しているということだ
だからなに?
> いや組み込まれているが
「コンパイラ(プリプロセッサじゃなくて)」には組み込まれてないだろ
> それが具体的に何型なのかを
> コンパイラの実装者が明らかにせよと
> 規格が要求しているということだ
だからなに?
698デフォルトの名無しさん (ワッチョイ f76c-QYYo)
2017/07/06(木) 12:58:54.02ID:Ot0nxXPI0 size_tは__darwin_size_tでトドのつまり、unsighed longだって。
699デフォルトの名無しさん (ドコグロ MM2b-AvV2)
2017/07/06(木) 13:20:12.73ID:SSOSMdMWM700デフォルトの名無しさん (ワッチョイ b7db-TZYB)
2017/07/06(木) 14:53:10.10ID:m/Ia1fy10 >>691
反物質のサイズでも記述する気か?w
反物質のサイズでも記述する気か?w
701デフォルトの名無しさん (アウアウウー Sa5b-pw7F)
2017/07/06(木) 15:09:30.84ID:F+RVqvnpa 【環境】
CS+ + RX62N + E1エミュレータ
【言語】
C言語
上記にてprintf()でCS+のデバッグウィンドウに出力するにはどうすればいいですか?
CS+ + RX62N + E1エミュレータ
【言語】
C言語
上記にてprintf()でCS+のデバッグウィンドウに出力するにはどうすればいいですか?
702デフォルトの名無しさん (スッップ Sdbf-0UkT)
2017/07/06(木) 15:37:45.25ID:H/fupZr5d ここできくないようか?
703デフォルトの名無しさん (アウアウウー Sa5b-pw7F)
2017/07/06(木) 15:51:10.46ID:F+RVqvnpa >>702
printf()ってCの標準関数でしょ?ここでいいのでは?
printf()ってCの標準関数でしょ?ここでいいのでは?
704デフォルトの名無しさん (ワッチョイ d76f-rmcQ)
2017/07/06(木) 16:28:30.82ID:hwRP8VqJ0 ターゲットデバイス上でプログラムを実行するのであって、開発マシン上でプログラムを実行するのではない
705デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 17:11:22.36ID:CwAIhoRS0 >>697
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
# cl.exeではsize_tがいきなり使えるが、それがおまえの理想か
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
# cl.exeではsize_tがいきなり使えるが、それがおまえの理想か
706デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/06(木) 19:16:01.36ID:kIxohS2+M >>705
> # cl.exeではsize_tがいきなり使えるが、それがおまえの理想か
どこの cl.exe なのか知らんけど手元の Visual Studio 2015 Express では未定義の識別子だぞ
> # cl.exeではsize_tがいきなり使えるが、それがおまえの理想か
どこの cl.exe なのか知らんけど手元の Visual Studio 2015 Express では未定義の識別子だぞ
707デフォルトの名無しさん (ワッチョイ 977f-KuRC)
2017/07/06(木) 20:40:37.21ID:fTFUdLH00 >>700
size_tの差を記述したいんだろう。
size_tの差を記述したいんだろう。
708デフォルトの名無しさん (ワッチョイ 9fea-hKQV)
2017/07/06(木) 21:53:15.95ID:GBHzG+Z/0 何も入力されずにenterが押されたらループを終了する方法が分かりません・・・
誰か教えてください・・・
やはりscanfでは出来ませんかね
fgetsだったらできますか?
誰か教えてください、お願いします
誰か教えてください・・・
やはりscanfでは出来ませんかね
fgetsだったらできますか?
誰か教えてください、お願いします
709片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/06(木) 22:01:35.45ID:TwV4dW80d プロとしては、scanf単独で使うのではなく、fgetsとsscanfの組み合わせをオススメする。
Enterキーのみが入力されたときは、fgetsのバッファには\nが入る。
Enterキーのみが入力されたときは、fgetsのバッファには\nが入る。
710デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 22:02:15.40ID:CwAIhoRS0711デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 22:03:10.59ID:CwAIhoRS0 つーか+Mはメインの質問に答えてないんだが
712デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/06(木) 22:04:47.65ID:CwAIhoRS0713デフォルトの名無しさん (ワッチョイ 9fea-hKQV)
2017/07/06(木) 22:08:15.36ID:GBHzG+Z/0714デフォルトの名無しさん (ワッチョイ ff4b-zXdO)
2017/07/06(木) 22:13:42.82ID:btC8Tydl0 http://www.c-tipsref.com/reference/stdio/fgets.html
読み取ったものが空だったときfgetsはNULLを返すらしいのでそれを使えばいいかと
読み取ったものが空だったときfgetsはNULLを返すらしいのでそれを使えばいいかと
715デフォルトの名無しさん (ワッチョイ ff4b-zXdO)
2017/07/06(木) 22:17:43.51ID:btC8Tydl0 あ
確かにfgets(s, N, stdin)は改行を含めて読み取るな
じゃあ戻り値をsに格納したときにs[0] <= 0x1fのときループを終了させればいいか
確かにfgets(s, N, stdin)は改行を含めて読み取るな
じゃあ戻り値をsに格納したときにs[0] <= 0x1fのときループを終了させればいいか
716デフォルトの名無しさん (ワッチョイ 9fea-hKQV)
2017/07/06(木) 22:18:05.33ID:GBHzG+Z/0 >>714
ありがとうございます!
ありがとうございます!
717デフォルトの名無しさん (ワッチョイ ff4b-zXdO)
2017/07/06(木) 22:24:35.28ID:btC8Tydl0718デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/06(木) 22:58:55.19ID:Ksmyoljx0 >>710
スレタイも読めないアホは黙っとけ
スレタイも読めないアホは黙っとけ
719デフォルトの名無しさん (ワッチョイ b7e3-rvkC)
2017/07/06(木) 23:10:54.32ID:mkYh7+Rt0720デフォルトの名無しさん (ワッチョイ b7e3-rvkC)
2017/07/07(金) 00:50:35.73ID:eIaxM4+K0721デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/07(金) 04:21:12.07ID:WdR7zyOW0722デフォルトの名無しさん (アウアウエー Sadf-X9Wr)
2017/07/07(金) 05:29:44.02ID:1OiH67XQa723デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/07(金) 06:45:35.54ID:URSZRmHsM >>721
スレタイも話の流れも読めないアホは黙っとけ w
スレタイも話の流れも読めないアホは黙っとけ w
724デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/07(金) 08:07:53.36ID:WdR7zyOW0725デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/07(金) 08:12:35.70ID:URSZRmHsM アンカーついてるのに誰だよとか
さらにアホさが増してるやん w
さらにアホさが増してるやん w
726デフォルトの名無しさん (ブーイモ MMfb-61p1)
2017/07/07(金) 08:22:53.74ID:o9CZFWTBM 説明不足と読解不足の両方だおまえら
もういいからどっちも黙れ
もういいからどっちも黙れ
727デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/07(金) 09:38:36.86ID:WdR7zyOW0728デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 19:49:06.92ID:9n40FStT0 質問です。
http://fast-uploader.com/file/7054979858432/
このプラグラムで関数
void InsertList(struct LIST **ptr ,char *newname,char *newpref,double newdistance);
の部分のポインタのポインタ**ptrを普通のポインタ*ptrにするとコンパイラが通らないのは何故でしょうか?
*ptrに直してコンパイラがエラーとして指摘する場所は
newcell->nextptr=*ptr; /* いままでの先頭ポインタを次ポインタに変更 */
*ptr=newcell; /* 新しいデータ領域を先頭ポインタに変更 */
で、「「struct LIST」型の変数の値を「struct LIST *」型の変数に自動的に変換することはできない」とのことです。
自分の頭の中では**ptrを*ptrにしてもアドレスを渡すという役目はできそうに思うのですがよく解りません。
**ptrと*ptrで型が違うとは具体的にどういう意味で**ptrと*ptrでは何がどう違うんでしょうか?
http://fast-uploader.com/file/7054979858432/
このプラグラムで関数
void InsertList(struct LIST **ptr ,char *newname,char *newpref,double newdistance);
の部分のポインタのポインタ**ptrを普通のポインタ*ptrにするとコンパイラが通らないのは何故でしょうか?
*ptrに直してコンパイラがエラーとして指摘する場所は
newcell->nextptr=*ptr; /* いままでの先頭ポインタを次ポインタに変更 */
*ptr=newcell; /* 新しいデータ領域を先頭ポインタに変更 */
で、「「struct LIST」型の変数の値を「struct LIST *」型の変数に自動的に変換することはできない」とのことです。
自分の頭の中では**ptrを*ptrにしてもアドレスを渡すという役目はできそうに思うのですがよく解りません。
**ptrと*ptrで型が違うとは具体的にどういう意味で**ptrと*ptrでは何がどう違うんでしょうか?
729デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 19:54:32.46ID:w6YiLhhJM 単純に型が違うんどすえ
int a, *b, **c;
これ全部違うんどすえ
a = 728;
b = &a;
c = &b;
int d, *e, **f;
f = c;
e = *c;
d = **c;
どすえ
int a, *b, **c;
これ全部違うんどすえ
a = 728;
b = &a;
c = &b;
int d, *e, **f;
f = c;
e = *c;
d = **c;
どすえ
730デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 20:42:03.04ID:9n40FStT0 >>729
今回のプログラムに当てはめたらどうなるんでしょうか?
int a, *b, **c;
a = 728; = ?
b = &a; = root=NULL
c = &b; = ?
int d, *e, **f;
f = c; = ?
e = *c; = newcell
d = **c; = ?
それとも
a = 728; = ?
b = &a; = ?
c = &b; = root=NULL
int d, *e, **f;
f = c; = ?
e = *c; = newcell
d = **c; = ?
なのでしょうか?
根本的な回答を戴いたようで嬉しいのですが、なにぶん頭が悪くて理解が追いつきません・・・
*1つで型が変わる概念がいまいち理解できません
今回のプログラムに当てはめたらどうなるんでしょうか?
int a, *b, **c;
a = 728; = ?
b = &a; = root=NULL
c = &b; = ?
int d, *e, **f;
f = c; = ?
e = *c; = newcell
d = **c; = ?
それとも
a = 728; = ?
b = &a; = ?
c = &b; = root=NULL
int d, *e, **f;
f = c; = ?
e = *c; = newcell
d = **c; = ?
なのでしょうか?
根本的な回答を戴いたようで嬉しいのですが、なにぶん頭が悪くて理解が追いつきません・・・
*1つで型が変わる概念がいまいち理解できません
731デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 20:59:30.90ID:w6YiLhhJM ごめん、今回のプログラムとやらを一回も見てない
ポインタなんてのはCやる上で基礎の基礎
かつ、ポインタは一生大事に使っていけるお友達なんで
一時間でも二時間でも集中して時間とって
いろいろ調べるなり試すなりして一気に理解してほしい
あと、変数のポインタを渡すっていうのは定番
void foo() {
int x = 100;
bar(&x); // ここで&をつけて…
// ここでxが200になってる
}
void bar(int *p) {
*p = 200; // こっちで*付きで左辺に置いて代入する
}
こうやって呼び出し元の変数の中身を触るのはCでは定番(?)
今回は元のがint xとしたけど、
これがint x, *y, **zでも全部やることは同じ
&yしておいて*y = する
&zしておいて*z = する
ポインタなんてのはCやる上で基礎の基礎
かつ、ポインタは一生大事に使っていけるお友達なんで
一時間でも二時間でも集中して時間とって
いろいろ調べるなり試すなりして一気に理解してほしい
あと、変数のポインタを渡すっていうのは定番
void foo() {
int x = 100;
bar(&x); // ここで&をつけて…
// ここでxが200になってる
}
void bar(int *p) {
*p = 200; // こっちで*付きで左辺に置いて代入する
}
こうやって呼び出し元の変数の中身を触るのはCでは定番(?)
今回は元のがint xとしたけど、
これがint x, *y, **zでも全部やることは同じ
&yしておいて*y = する
&zしておいて*z = する
732デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 21:03:22.53ID:9n40FStT0 もう1週間ぐらいこのプログラムとにらめっこしててそれなりに思いついたワードでググったりはしてるんですが
状況にあってると思えるものが見つからないんです
状況にあってると思えるものが見つからないんです
733デフォルトの名無しさん (アウアウエー Sadf-X9Wr)
2017/07/07(金) 21:35:03.37ID:eVPhxI3Pa 一週間って。。。
才能無いか最低限の文法も理解してない気がする。
一回腰を据えて入門サイトなり入門書読んだ方がいい。
猫でもわかるC言語とかサンプル多くて良いぞ。
才能無いか最低限の文法も理解してない気がする。
一回腰を据えて入門サイトなり入門書読んだ方がいい。
猫でもわかるC言語とかサンプル多くて良いぞ。
734デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 21:36:13.31ID:w6YiLhhJM void InsertList(struct LIST **ptr); // ←このとき
newcell->nextptr=*ptr; // struct LIST *にstruct LIST *を代入している
*ptr=newcell; // struct LIST *にstruct LIST *を代入している
void InsertList(struct LIST *ptr); // ←こうしちゃったとき
newcell->nextptr=*ptr; // struct LIST *にstruct LISTを代入しようとしてエラー
*ptr=newcell; // struct LIST *にstruct LISTを代入しようとしてエラー
int a, *b, **c; // int, int *, int **
a = 728; // int
b = &a; // int *
c = &b; // int **
int d, *e, **f; // int, int *, int **
f = c; // int **
e = *c; // int *
d = **c; // int
変数の宣言と、式の中で*つけたり&つけたりする挙動については
自分でいろいろいじってみて納得いくまで確かめてみてほしい
newcell->nextptr=*ptr; // struct LIST *にstruct LIST *を代入している
*ptr=newcell; // struct LIST *にstruct LIST *を代入している
void InsertList(struct LIST *ptr); // ←こうしちゃったとき
newcell->nextptr=*ptr; // struct LIST *にstruct LISTを代入しようとしてエラー
*ptr=newcell; // struct LIST *にstruct LISTを代入しようとしてエラー
int a, *b, **c; // int, int *, int **
a = 728; // int
b = &a; // int *
c = &b; // int **
int d, *e, **f; // int, int *, int **
f = c; // int **
e = *c; // int *
d = **c; // int
変数の宣言と、式の中で*つけたり&つけたりする挙動については
自分でいろいろいじってみて納得いくまで確かめてみてほしい
735デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 21:39:10.74ID:w6YiLhhJM 逆ぅ!
誤:*ptr=newcell; // struct LIST *にstruct LISTを代入しようとしてエラー
正:*ptr=newcell; // struct LISTにstruct LIST *を代入しようとしてエラー
誤:*ptr=newcell; // struct LIST *にstruct LISTを代入しようとしてエラー
正:*ptr=newcell; // struct LISTにstruct LIST *を代入しようとしてエラー
736デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/07(金) 21:44:11.61ID:l2MEk1rK0 久々にCを見るとウザいな
737デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 22:02:46.24ID:9n40FStT0 型を合わせるために**ptrにしなければいけないところまでは解ったんですが
頭が悪いものですみません
**ptrだとstruct LIST *になって
*ptrだとstruct LIST になるところがよく解りません・・・
頭が悪いものですみません
**ptrだとstruct LIST *になって
*ptrだとstruct LIST になるところがよく解りません・・・
738デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 22:11:27.39ID:w6YiLhhJM void foo(struct LIST **ptr) {
struct LIST **a = ptr; // struct LIST **型の変数aを宣言して、struct LIST **型の値を代入
struct LIST *b = *ptr; // struct LIST *型の変数bを宣言して、struct LIST *型の値を代入
struct LIST c = **ptr; // struct LIST 型の変数cを宣言して、struct LIST 型の値を代入
}
へんすーの宣言時にくっついてる*と、
へんすーが式の中にでてきてるときにくっついてる*は役割がべつだよ!
分けて考えたほうが多分理解しやすいよ!
struct LIST **a = ptr; // struct LIST **型の変数aを宣言して、struct LIST **型の値を代入
struct LIST *b = *ptr; // struct LIST *型の変数bを宣言して、struct LIST *型の値を代入
struct LIST c = **ptr; // struct LIST 型の変数cを宣言して、struct LIST 型の値を代入
}
へんすーの宣言時にくっついてる*と、
へんすーが式の中にでてきてるときにくっついてる*は役割がべつだよ!
分けて考えたほうが多分理解しやすいよ!
739片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/07(金) 22:12:23.98ID:TNY1f3mCd 変す〜
740デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/07(金) 22:30:21.67ID:a0p8X5TA0 >>737
マジレスするとお前はCをあきらめたほうがいい。
C言語においてハマりポイントはポインタだと言われてはいるが、
実際は10秒で通過する奴と、永久にはまる奴という感じだ。スクリーニングに近い。
昔みたいにC言語しか選択肢がないのならともかく、現在は他の言語もある。
そこをすんなり理解出来ない奴がCにこだわってもどうせ付いていけない。
てか、あんまり真面目に話を聞いたことはないんだが、
ポインタが分からないって言う奴らは、こいつがはまっているケースじゃないよな?
ちなみに俺が疑問なのは関数ポインタの表記方法で、
俺の感覚は以下ブログ主と全く同じ。
http://fa11enprince.hatenablog.com/entry/2015/11/15/135056
内容は要するに以下。
現行:void (*signal(int sig, void (*func)(int))) (int);
希望:(void (*)(int)) signal(int sig, void (*func)(int));
何で現行の文法になってるのか分かる人いる?
昔、「入れ子だとマクロでも対応できる(キリッ」って聞いたんだけど、
以前考えたら上記「希望」でもマクロ対応出来る感じだったので、謎になってる。
マジレスするとお前はCをあきらめたほうがいい。
C言語においてハマりポイントはポインタだと言われてはいるが、
実際は10秒で通過する奴と、永久にはまる奴という感じだ。スクリーニングに近い。
昔みたいにC言語しか選択肢がないのならともかく、現在は他の言語もある。
そこをすんなり理解出来ない奴がCにこだわってもどうせ付いていけない。
てか、あんまり真面目に話を聞いたことはないんだが、
ポインタが分からないって言う奴らは、こいつがはまっているケースじゃないよな?
ちなみに俺が疑問なのは関数ポインタの表記方法で、
俺の感覚は以下ブログ主と全く同じ。
http://fa11enprince.hatenablog.com/entry/2015/11/15/135056
内容は要するに以下。
現行:void (*signal(int sig, void (*func)(int))) (int);
希望:(void (*)(int)) signal(int sig, void (*func)(int));
何で現行の文法になってるのか分かる人いる?
昔、「入れ子だとマクロでも対応できる(キリッ」って聞いたんだけど、
以前考えたら上記「希望」でもマクロ対応出来る感じだったので、謎になってる。
741デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/07(金) 22:47:31.37ID:a0p8X5TA0 一応ポインタ周りについてググってみた。
> C言語のポインタが難解とされる理由
> https://teratail.com/questions/9058
以前から言われており、上記URL内でも散見されるが、
アセンブラをCよりも先にやった連中は誰一人としてポインタで躓かない。
だからポインタで引っかかる奴は
・ポインタの物理イメージがつかめないから
だと俺は理解していて、そいつが引っかかっているデリファレンス周りではないはず。
ただ、共用体がない言語なら物理イメージを持たずにプログラミングできるから、
それで問題ないとも思う。だから他言語にしろって話にしてる。
> C言語のポインタが難解とされる理由
> https://teratail.com/questions/9058
以前から言われており、上記URL内でも散見されるが、
アセンブラをCよりも先にやった連中は誰一人としてポインタで躓かない。
だからポインタで引っかかる奴は
・ポインタの物理イメージがつかめないから
だと俺は理解していて、そいつが引っかかっているデリファレンス周りではないはず。
ただ、共用体がない言語なら物理イメージを持たずにプログラミングできるから、
それで問題ないとも思う。だから他言語にしろって話にしてる。
742デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 22:51:15.64ID:9n40FStT0 >>738
void foo(struct LIST *ptr)だとどうなるんですか?
void foo(struct LIST *ptr)だとどうなるんですか?
743デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/07(金) 22:52:13.92ID:l2MEk1rK0 fooとかhogeとかウザい
744デフォルトの名無しさん (ワッチョイ b7db-TZYB)
2017/07/07(金) 22:54:49.07ID:UOx3xuNS0 >>707
そりゃsizediff_tじゃないか?
そりゃsizediff_tじゃないか?
745デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 22:58:53.18ID:w6YiLhhJM >>742
void foo(struct LIST *ptr) {
struct LIST **a = &ptr; // struct LIST **型の変数aを宣言して、struct LIST **型の値を代入
struct LIST *b = ptr; // struct LIST *型の変数bを宣言して、struct LIST *型の値を代入
struct LIST c = *ptr; // struct LIST 型の変数cを宣言して、struct LIST 型の値を代入
}
これでなんとなくわかった?
void foo(struct LIST *ptr) {
struct LIST **a = &ptr; // struct LIST **型の変数aを宣言して、struct LIST **型の値を代入
struct LIST *b = ptr; // struct LIST *型の変数bを宣言して、struct LIST *型の値を代入
struct LIST c = *ptr; // struct LIST 型の変数cを宣言して、struct LIST 型の値を代入
}
これでなんとなくわかった?
746デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 23:01:13.47ID:9n40FStT0 >>745
いえあまり・・・すみません・・・
いえあまり・・・すみません・・・
747デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 23:02:33.34ID:9n40FStT0748デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 23:04:45.62ID:w6YiLhhJM int aとint *bとint **cが別の型なのは分かる?
わからないよね?
b = cの代入がエラーになるのが分からないんだよね?
わからないよね?
b = cの代入がエラーになるのが分からないんだよね?
749デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 23:13:41.64ID:9n40FStT0 >>748
型が違って代入できないのは指摘して頂いたのでわかるんですがどこで型が違ったのかがいまいちよく解らなくて
まぁもちろん関数の**ptrを*ptrにしたところで変わったんだと思うんですがどうして*をつけると型が変わったといえるのかがいまいちよく解らないんです
型が違って代入できないのは指摘して頂いたのでわかるんですがどこで型が違ったのかがいまいちよく解らなくて
まぁもちろん関数の**ptrを*ptrにしたところで変わったんだと思うんですがどうして*をつけると型が変わったといえるのかがいまいちよく解らないんです
750デフォルトの名無しさん (ワッチョイ 97ea-okny)
2017/07/07(金) 23:16:17.01ID:q3zfwuJv0 最近VBAを勉強したんだけど、動作が遅く感じるわ
751デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/07(金) 23:23:00.08ID:l2MEk1rK0 最近初めてCまで行った
752デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/07(金) 23:24:40.63ID:a0p8X5TA0 >>745
多分君なりのポリシーがあるのだと思うのだけど、
struct LIST **a = &ptr; // (A)
よりも
struct LIST** a = &ptr; // (B)
の方が一般的には分かりやすいのではないかと。
そして宣言 int* i, j, k; でシンタックスエラーを出すまでが様式美。
と思ったけど、K&R確認したら全部(A)だったw
多分君なりのポリシーがあるのだと思うのだけど、
struct LIST **a = &ptr; // (A)
よりも
struct LIST** a = &ptr; // (B)
の方が一般的には分かりやすいのではないかと。
そして宣言 int* i, j, k; でシンタックスエラーを出すまでが様式美。
と思ったけど、K&R確認したら全部(A)だったw
753デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 23:25:06.38ID:w6YiLhhJM うんうん…うん?
int a; // int
int *b; // intへのポインタ 型
int **c; // intへのポインタへのポインタ 型
ここまでわかる?
ここまで変数宣言時に*くっつくと型が変わる例
(こっち側考えないで) = c; // intへのポインタへのポインタ 型
(こっち側考えないで) = *c; // intへのポインタ 型
(こっち側考えないで) = **c; // int 型
ここまでわかる?
ここまで、式の途中で変数に*くっついてると型が変わる例
これだけのこと
int a; // int
int *b; // intへのポインタ 型
int **c; // intへのポインタへのポインタ 型
ここまでわかる?
ここまで変数宣言時に*くっつくと型が変わる例
(こっち側考えないで) = c; // intへのポインタへのポインタ 型
(こっち側考えないで) = *c; // intへのポインタ 型
(こっち側考えないで) = **c; // int 型
ここまでわかる?
ここまで、式の途中で変数に*くっついてると型が変わる例
これだけのこと
754デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 23:26:09.89ID:w6YiLhhJM755デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/07(金) 23:34:50.66ID:a0p8X5TA0 >>754
いや、マジでCの文法は直感的じゃないんだよ。(プログラミング時の論理イメージとずれる)
俺的には(既に書いたが)以下のほうが良かったと思うよ。
(void (*)(int)) signal(int sig, void (*func)(int)); // これで関数ポインタ宣言させろ
int* p, q, r; // これは全部ポインタ宣言にさせろ
とはいえ限られた記号を使って上手くそれなりに整合性良く纏めてあるとは思うが。
いや、マジでCの文法は直感的じゃないんだよ。(プログラミング時の論理イメージとずれる)
俺的には(既に書いたが)以下のほうが良かったと思うよ。
(void (*)(int)) signal(int sig, void (*func)(int)); // これで関数ポインタ宣言させろ
int* p, q, r; // これは全部ポインタ宣言にさせろ
とはいえ限られた記号を使って上手くそれなりに整合性良く纏めてあるとは思うが。
756デフォルトの名無しさん (ワッチョイ 9711-1B52)
2017/07/07(金) 23:37:20.26ID:EA9An3gB0 宣言で ポインタ型を示す時 *
ポインタの指し先の実体を求める時 *
変数のポインタを求める時 &
上2つが文法的にやっかいかな? 同じ記号使ってるし
ポインタの指し先の実体を求める時 *
変数のポインタを求める時 &
上2つが文法的にやっかいかな? 同じ記号使ってるし
757デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 23:38:35.07ID:9n40FStT0 >>753
多分その基本は理解できてると思います
ただstruct LIST *newcellがどうして**ptrと同格に扱われてるのかよく解らないというか・・・
*ptrでアドレスのやり取りできるんじゃないのって思ってしまうんです
でも実際は型が違う
どうして?っという感じです。
多分その基本は理解できてると思います
ただstruct LIST *newcellがどうして**ptrと同格に扱われてるのかよく解らないというか・・・
*ptrでアドレスのやり取りできるんじゃないのって思ってしまうんです
でも実際は型が違う
どうして?っという感じです。
758デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/07(金) 23:45:37.17ID:w6YiLhhJM >>757
ポインタのことをアドレスだと考えるのはやめたほうが良い
ポインタは単なるアドレスなんかじゃないからね
そこには必ず型ってもんがあるの「〜へのポインタ」
ってなるからこそ色々できるんだけどその話は今は省略
> struct LIST *newcellがどうして**ptrと同格に扱われてる
同格に扱うってどういうこと?
ポインタのことをアドレスだと考えるのはやめたほうが良い
ポインタは単なるアドレスなんかじゃないからね
そこには必ず型ってもんがあるの「〜へのポインタ」
ってなるからこそ色々できるんだけどその話は今は省略
> struct LIST *newcellがどうして**ptrと同格に扱われてる
同格に扱うってどういうこと?
759デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/07(金) 23:49:58.38ID:9n40FStT0760デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/07(金) 23:53:32.79ID:a0p8X5TA0761デフォルトの名無しさん (ワッチョイ 9711-1B52)
2017/07/07(金) 23:59:10.17ID:EA9An3gB0 みてないけど >>728 の第一引数は 引数の書き換え結果を呼び出し元に伝えたいケースなんじゃないの?
int の値を受けて その値の1大きい値を返す
引数で受けて書き換え結果を戻り値で返すなら
int func0(int arg) { return arg + 1; }
引数で受けて、引数の指し先を書き換えることで書き換え結果を呼び出し元に伝える
void func1(int* arg) { *arg = (*arg)+1; }
※ なお Cには参照型というのがないので
※ void func2(int arg) { arg = arg+1; } としても呼び出し元には 1増えた値が伝わらない
int a = 1;
a = func0(a); printf("%d\n", a); // a = 2 となる
func1(&a); printf("%d\n", a); // a = 3 となる
func2(a); printf("%d\n", a); // a = 3 のまま
int の値を受けて その値の1大きい値を返す
引数で受けて書き換え結果を戻り値で返すなら
int func0(int arg) { return arg + 1; }
引数で受けて、引数の指し先を書き換えることで書き換え結果を呼び出し元に伝える
void func1(int* arg) { *arg = (*arg)+1; }
※ なお Cには参照型というのがないので
※ void func2(int arg) { arg = arg+1; } としても呼び出し元には 1増えた値が伝わらない
int a = 1;
a = func0(a); printf("%d\n", a); // a = 2 となる
func1(&a); printf("%d\n", a); // a = 3 となる
func2(a); printf("%d\n", a); // a = 3 のまま
762デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/08(土) 00:09:59.34ID:cmJEhNfHM763デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 00:21:10.89ID:t7BT1SeM0 誰も見てないのが笑える。俺もだがw
質問者は分かってないようだが、
> 「struct LIST」型の変数の値を「struct LIST *」型の変数に自動的に変換することはできない」 (>>728)
ってのは要するに & か * を忘れたときの典型的なエラーで、
隣に人がいたら「サーセンwwwww」とか言って誤魔化して10秒で修正して再コンパイルする、
ただのtypo。
みんなこれを知ってるから誰もソースなんて見に行きません。
newcell?知らんがな。ソース?見るまでもなく & か * 忘れてるだけだろ、さっさと直せ、って感じ。
とはいえ、エアプがいないのはいいことだね。
質問者は分かってないようだが、
> 「struct LIST」型の変数の値を「struct LIST *」型の変数に自動的に変換することはできない」 (>>728)
ってのは要するに & か * を忘れたときの典型的なエラーで、
隣に人がいたら「サーセンwwwww」とか言って誤魔化して10秒で修正して再コンパイルする、
ただのtypo。
みんなこれを知ってるから誰もソースなんて見に行きません。
newcell?知らんがな。ソース?見るまでもなく & か * 忘れてるだけだろ、さっさと直せ、って感じ。
とはいえ、エアプがいないのはいいことだね。
764デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/08(土) 00:30:18.82ID:P0Vqm6hU0 もしかしてvoid foo1(struct LIST *ptr) {struct LIST *b = ptr;}の場合に*ptrを使うとそれはアドレスを渡すのではなく
実数として渡してしまうから論理破綻しているということですか?
実数として渡してしまうから論理破綻しているということですか?
765デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/08(土) 00:40:47.53ID:cmJEhNfHM やっぱ>>756さんの言ってることが問題な気がする
そういえば俺も最初はそこで混乱あったような気がする
int a = 100;
int *b = &a; // 1) intへのポインタ型のbに、intへのポインタを代入している
*b = 200; // 2) bが指してたint型の領域に、200を代入
printf("%d %d", a, *b);
ここなんだよなぁ
1)と2)が見た目似てるくせにやってることがテラ違うという
なんか懐かしいわ
そういえば俺も最初はそこで混乱あったような気がする
int a = 100;
int *b = &a; // 1) intへのポインタ型のbに、intへのポインタを代入している
*b = 200; // 2) bが指してたint型の領域に、200を代入
printf("%d %d", a, *b);
ここなんだよなぁ
1)と2)が見た目似てるくせにやってることがテラ違うという
なんか懐かしいわ
766デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 00:41:41.51ID:t7BT1SeM0 >>761
× > ※ なお Cには参照型というのがないので
○ 参照が必要な場合は、ポインタを使って明示的に参照を渡す
だね。そしてC++の「参照」とJava等の「参照型」の物理的意味が異なるから
余計に話がおかしくなり、辻褄を合わせるために
「参照の値渡し(キリッ」とか言い出すという。
とりあえず生Cで「参照」という言葉は使われてないでしょ。
それを持ち出すのは余計に混乱するだけ。
K&R確認してみたが、
「Fortranのようなcall by referenceとは違い」のところでしか出て来ない。
これのおかげかFortranは再帰できない糞言語だった。(と聞いている)
そんな糞とは違う、まさに「ザクとは違うのだよ、ザクとは」の文脈で使われてる。
見た目だけ参照型が欲しければtypedefすればいいだけ。
(普通は余計に分かりにくくなるからしないが)
それをここで持ち出す意味が分からんね。
× > ※ なお Cには参照型というのがないので
○ 参照が必要な場合は、ポインタを使って明示的に参照を渡す
だね。そしてC++の「参照」とJava等の「参照型」の物理的意味が異なるから
余計に話がおかしくなり、辻褄を合わせるために
「参照の値渡し(キリッ」とか言い出すという。
とりあえず生Cで「参照」という言葉は使われてないでしょ。
それを持ち出すのは余計に混乱するだけ。
K&R確認してみたが、
「Fortranのようなcall by referenceとは違い」のところでしか出て来ない。
これのおかげかFortranは再帰できない糞言語だった。(と聞いている)
そんな糞とは違う、まさに「ザクとは違うのだよ、ザクとは」の文脈で使われてる。
見た目だけ参照型が欲しければtypedefすればいいだけ。
(普通は余計に分かりにくくなるからしないが)
それをここで持ち出す意味が分からんね。
767デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 00:46:30.43ID:t7BT1SeM0768デフォルトの名無しさん (ワッチョイ 9711-1B52)
2017/07/08(土) 00:47:46.49ID:gQ2FFwnX0769デフォルトの名無しさん (ワッチョイ 976f-qSys)
2017/07/08(土) 00:50:34.05ID:YHFGbdic0 >>764
関数の引数で渡されるのは"同値のコピー"なのよ
void func1(int b) {...}
void func2(void) {
int a = 100;
func1(a);
}
func2からaを引数として関数func1に渡すと、func1では「aと同じ内容のコピーb」が用意される
func1内でどれだけbを書き換えようが所詮コピーなのでfunc1を抜ければbは破棄されaにはなんら影響がない
a自体を書き換えさせたいならaの内容ではなくaの場所を教える必要がある
それを実現するのがポインタで上の例なら
void func1(int *b) {...}
void func2(void) {
int a = 100;
func1(&a);
}
となりキミの当初の質問にも同じことが言える
*が何個重なろうが理由は同じ
関数の引数で渡されるのは"同値のコピー"なのよ
void func1(int b) {...}
void func2(void) {
int a = 100;
func1(a);
}
func2からaを引数として関数func1に渡すと、func1では「aと同じ内容のコピーb」が用意される
func1内でどれだけbを書き換えようが所詮コピーなのでfunc1を抜ければbは破棄されaにはなんら影響がない
a自体を書き換えさせたいならaの内容ではなくaの場所を教える必要がある
それを実現するのがポインタで上の例なら
void func1(int *b) {...}
void func2(void) {
int a = 100;
func1(&a);
}
となりキミの当初の質問にも同じことが言える
*が何個重なろうが理由は同じ
770デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 01:02:46.45ID:t7BT1SeM0 つか質問者はC言語以外には何ができるんだ?
>>768
なんか噛み付いた感じになってすまんかった。
他言語ができれば「参照」の説明は意味はある。
この可能性を忘れていた。
ただまあ、Cはやっぱりその辺のところが古くて、
現実的に構造体の値渡しなんてほぼやらないし、(つか、必要性がない)
他言語みたいに「構造体は参照渡し」で固定してよかったと思うよ。
まだ黎明期でその辺のプログラミング作法自体がなかった時代だから無理ではあるが。
>>768
なんか噛み付いた感じになってすまんかった。
他言語ができれば「参照」の説明は意味はある。
この可能性を忘れていた。
ただまあ、Cはやっぱりその辺のところが古くて、
現実的に構造体の値渡しなんてほぼやらないし、(つか、必要性がない)
他言語みたいに「構造体は参照渡し」で固定してよかったと思うよ。
まだ黎明期でその辺のプログラミング作法自体がなかった時代だから無理ではあるが。
771デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/08(土) 01:26:26.98ID:P0Vqm6hU0772デフォルトの名無しさん (ワッチョイ 9711-1B52)
2017/07/08(土) 01:30:54.87ID:gQ2FFwnX0773デフォルトの名無しさん (ワッチョイ 9fd7-Srbl)
2017/07/08(土) 01:43:27.53ID:zuW254gH0 >>728
俺もまだ見てないのだがw
**ptrを*ptrにしてもアドレスを渡すという役目はできます。その通りです。
void *ptrでもいいです。コンパイルエラーになるのはその後なのです。
あくまで処理に必要なのは struct LIST ** なので、キャストするなどすればコンパイルは通ります。
void *ptrで受けて struct LIST **_ptr = ptr; と代入して、以降_ptrを使うという方法もあります。
俺もまだ見てないのだがw
**ptrを*ptrにしてもアドレスを渡すという役目はできます。その通りです。
void *ptrでもいいです。コンパイルエラーになるのはその後なのです。
あくまで処理に必要なのは struct LIST ** なので、キャストするなどすればコンパイルは通ります。
void *ptrで受けて struct LIST **_ptr = ptr; と代入して、以降_ptrを使うという方法もあります。
774デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 01:57:31.44ID:t7BT1SeM0 >>756
>>765
一応それは違うというほど違わなくて、だからって共通でいいのか?とも思うが、
そこを共通にしてしまっているから宗教論争になってる。
同様なものに「配列と配列へのポインタ」がある。
俺はやっぱり、
int* b = &a; // int*型(=intへのポインタ型)の変数 b に a のアドレスを代入
の方が好きだし、実際こう書く奴の方が多い。(と俺は思っている)
ただ、Cの文法的には765の記述が正しく、*はintではなくbと結合する。
ただし解釈は異なり、それはあくまでデリファレンスであり「宣言のときだけは別」ではない。
int a = 100;
int *b = &a; // 1回デリファレンスすると int になる b という変数に a のアドレスを代入
*b = 200; // bを1回デリファレンスしたもの(つまり100)に200を上書き
K&Rには*は逆参照演算子としか書いておらず、説明文は
> int *ip;
> は記号表現として、*ipという表現がintであることを表す。
となっている。
>>765
一応それは違うというほど違わなくて、だからって共通でいいのか?とも思うが、
そこを共通にしてしまっているから宗教論争になってる。
同様なものに「配列と配列へのポインタ」がある。
俺はやっぱり、
int* b = &a; // int*型(=intへのポインタ型)の変数 b に a のアドレスを代入
の方が好きだし、実際こう書く奴の方が多い。(と俺は思っている)
ただ、Cの文法的には765の記述が正しく、*はintではなくbと結合する。
ただし解釈は異なり、それはあくまでデリファレンスであり「宣言のときだけは別」ではない。
int a = 100;
int *b = &a; // 1回デリファレンスすると int になる b という変数に a のアドレスを代入
*b = 200; // bを1回デリファレンスしたもの(つまり100)に200を上書き
K&Rには*は逆参照演算子としか書いておらず、説明文は
> int *ip;
> は記号表現として、*ipという表現がintであることを表す。
となっている。
775デフォルトの名無しさん (ワッチョイ 97b6-zXdO)
2017/07/08(土) 06:16:14.83ID:utlt5XjQ0 >>774
自分もC言語覚えたての頃は、「int *」型という風に見ていた。
ポインタがあるんだからポインタを表す型がある方がわかりやすかった
イントロダクションとしてはポインタ型があるとみなしていいと思う。
でも言語仕様はK&Rのとおりで、初心者になる頃には正しく
理解できるほうがいい
自分もC言語覚えたての頃は、「int *」型という風に見ていた。
ポインタがあるんだからポインタを表す型がある方がわかりやすかった
イントロダクションとしてはポインタ型があるとみなしていいと思う。
でも言語仕様はK&Rのとおりで、初心者になる頃には正しく
理解できるほうがいい
776デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 07:24:02.64ID:t7BT1SeM0 >>775
確認してみたが、ほとんどのサイトは int* p; ではなく int *p; だった。
有名どころではロベールが前者だが、他はほぼ全部後者。
C#は前者に仕様変更されている。
> int* p1, p2, p3; // Ok
> int *p1, *p2, *p3; // Invalid in C#
> https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/unsafe-code-pointers/pointer-types
特にint*型という理解で苦労した覚えはないが、(int *p, *q, *r;のみ例外)
文法的にはどうしても上記が引っかかるので説明サイトはほぼ全部後者になったのかな?
で、ヘルスバーグは糞だと判断して変更したと。
確認してみたが、ほとんどのサイトは int* p; ではなく int *p; だった。
有名どころではロベールが前者だが、他はほぼ全部後者。
C#は前者に仕様変更されている。
> int* p1, p2, p3; // Ok
> int *p1, *p2, *p3; // Invalid in C#
> https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/unsafe-code-pointers/pointer-types
特にint*型という理解で苦労した覚えはないが、(int *p, *q, *r;のみ例外)
文法的にはどうしても上記が引っかかるので説明サイトはほぼ全部後者になったのかな?
で、ヘルスバーグは糞だと判断して変更したと。
777デフォルトの名無しさん (ワッチョイ 7732-zXdO)
2017/07/08(土) 07:33:48.69ID:BPlXEDNj0 型に*を付けるのはC++の文化じゃないかな
Cだと識別子に付けるのが一般的だと思う
Cだと識別子に付けるのが一般的だと思う
778デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 07:46:29.64ID:t7BT1SeM0779デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/08(土) 08:10:56.15ID:hvS2v9rj0 int*p;
int * q;
は少数派か
int * q;
は少数派か
780デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/08(土) 09:38:58.20ID:cmJEhNfHM781デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 09:53:29.46ID:t7BT1SeM0 >>772
>>780
ちなみにそれは何が分かりやすくなるんだ?
というか俺にはそれでどう勘違いしている奴を正しく導けるのか分からない。
ただし以下サイトでもそう言っているから、一部の人間に効果があるのは確実だとは思うが。
> ポインタの文法を説明するときに大切なことは、変数の宣言時初期化構文を見せないことです。
> http://pg-kura.hatenablog.com/entry/20120611/1339376977
>>780
ちなみにそれは何が分かりやすくなるんだ?
というか俺にはそれでどう勘違いしている奴を正しく導けるのか分からない。
ただし以下サイトでもそう言っているから、一部の人間に効果があるのは確実だとは思うが。
> ポインタの文法を説明するときに大切なことは、変数の宣言時初期化構文を見せないことです。
> http://pg-kura.hatenablog.com/entry/20120611/1339376977
782デフォルトの名無しさん (スップ Sd3f-AoMt)
2017/07/08(土) 13:09:09.14ID:/+Nzxl5ld 右辺値、左辺値の違いの分からんやつに
ポインタの正確な理解、運用は永遠に出来んよ。
ポインタの正確な理解、運用は永遠に出来んよ。
783デフォルトの名無しさん (ワッチョイ b7e3-rvkC)
2017/07/08(土) 13:22:39.20ID:8y6q1o6T0 ポインタの話は別としても、
変数を宣言時に初期化するのは良い方法だと思うが
変数を宣言時に初期化するのは良い方法だと思うが
784デフォルトの名無しさん (スプッッ Sd8b-AoMt)
2017/07/08(土) 13:48:34.76ID:I4XLIasbd int* a, b; が int *a, *b;と等価だと思ってるやつw
C++の流儀はこの誤解を助長する
C++の流儀はこの誤解を助長する
785デフォルトの名無しさん (ワッチョイ 9fea-rvkC)
2017/07/08(土) 14:16:33.13ID:POxX89aN0 *がintにかかるか、aにかかるかだね
intにかかる方がシステマティックではあるよね
intにかかる方がシステマティックではあるよね
>>785
宣言時と使用時で優先度が変わるのは好ましくない
宣言時と使用時で優先度が変わるのは好ましくない
787デフォルトの名無しさん (ワッチョイ 977f-KuRC)
2017/07/08(土) 15:49:17.90ID:lUvEvZ3o0 別物なんだから同じにする必要はないな。
788デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/08(土) 18:26:01.68ID:znuCL+sZ0789デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/08(土) 18:47:08.89ID:znuCL+sZ0 >>787
わざわざ同じでなくす必要はもっとない
わざわざ同じでなくす必要はもっとない
>>787
そうやって文法を増やすのは好ましくない
そうやって文法を増やすのは好ましくない
791デフォルトの名無しさん (ワッチョイ 97c1-1B52)
2017/07/08(土) 19:20:19.10ID:UbbmKSpA0792デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/08(土) 19:40:16.15ID:t7BT1SeM0793デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
2017/07/08(土) 19:47:16.06ID:HDF4cM220 >>792
Cに全く関係ないってのは言いすぎだけど、ポインタには関係ないのはその通り。
Cに全く関係ないってのは言いすぎだけど、ポインタには関係ないのはその通り。
794デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
2017/07/08(土) 19:50:13.79ID:HDF4cM220 ん?
ああ、でもコンストラクタシステムがない以上、気にするところではないのか。
失礼、Cには確かに関係ないね。
ああ、でもコンストラクタシステムがない以上、気にするところではないのか。
失礼、Cには確かに関係ないね。
795デフォルトの名無しさん (ワイモマー MMbf-VsG/)
2017/07/08(土) 20:40:01.20ID:cmJEhNfHM >>791
|
/ ̄ ̄ ̄\
/ .\
.| .∧ |
.| ./川\ |
\/┏┷┓\/
。┃お┃。
゙ # ゚┃め┃; 。
; 。 ・┃で┃・ #
。 ;゙ #┃と┃# 。
゙・# : ┃う┃。 ; 。
.;:# ゙。゚┃!┃゚ 。 #
; 。;; ゙.:。┗┯┛。 # : #
∧_∧ │
. ( ´・ω・)│
:/ つΦ
|
/ ̄ ̄ ̄\
/ .\
.| .∧ |
.| ./川\ |
\/┏┷┓\/
。┃お┃。
゙ # ゚┃め┃; 。
; 。 ・┃で┃・ #
。 ;゙ #┃と┃# 。
゙・# : ┃う┃。 ; 。
.;:# ゙。゚┃!┃゚ 。 #
; 。;; ゙.:。┗┯┛。 # : #
∧_∧ │
. ( ´・ω・)│
:/ つΦ
796デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/08(土) 21:14:44.01ID:H/yQ/C3x0797デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/08(土) 21:31:33.01ID:znuCL+sZ0 >>796
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
さあ答えろ
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
さあ答えろ
798デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/08(土) 22:10:39.54ID:H/yQ/C3x0799デフォルトの名無しさん (ワッチョイ b7db-TZYB)
2017/07/09(日) 05:03:16.31ID:W7Itegl80 組み込まれていない:stddef.hで定義されてるんだから組み込み型ではない
組み込まれてる:unsigned intかunsigned longかunsigned long longか知らんけど組み込まれてるだろ
ってことかすぃら?
組み込まれてる:unsigned intかunsigned longかunsigned long longか知らんけど組み込まれてるだろ
ってことかすぃら?
800デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 05:59:52.53ID:DwPx7o2S0801デフォルトの名無しさん (ドコグロ MMbf-d65a)
2017/07/09(日) 06:59:17.53ID:ouwdb2hLM802デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 07:40:42.30ID:DwPx7o2S0803デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/09(日) 13:14:16.68ID:Uu/MlKNRM804デフォルトの名無しさん (アウアウカー Sa2b-jwws)
2017/07/09(日) 14:30:35.01ID:1GYqbN7ba アホだのバカだの子供みてーなケンカすんなw
805デフォルトの名無しさん (ワッチョイ 9f6e-4BC7)
2017/07/09(日) 15:09:59.91ID:ZJXpL8k20 見苦しい喧嘩して何になるんだ?
806デフォルトの名無しさん (ドコグロ MMdf-d65a)
2017/07/09(日) 16:46:00.20ID:Uu/MlKNRM807デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 18:27:56.89ID:DwPx7o2S0808デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/09(日) 18:49:12.76ID:bCABOrL10810デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 19:06:47.55ID:DwPx7o2S0 俺はしつこい
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
おまえの定義では、どうなっていることを「組み込まれている」というんだ?
たとえば、
float a = sizeof(int);
これの動作過程の途中に生じる整数型は、コンパイラには組み込まれていないのか?
だとするならば、コンパイラは標準変換の規定に「準拠」することができないぞ
811デフォルトの名無しさん (スップ Sdbf-0UkT)
2017/07/09(日) 19:08:38.13ID:6MYOcrZ9d 他でやれ
812デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 19:09:15.82ID:DwPx7o2S0 動作の実装と識別子の導入の区別もつかないアホが
どでかいブーメランほってやがるぜw
どでかいブーメランほってやがるぜw
813デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/09(日) 19:22:24.50ID:bCABOrL10814デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 19:42:37.88ID:DwPx7o2S0815デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/09(日) 19:52:27.11ID:bCABOrL10 日本語が理解できてないんだろうな...
出してきた「意図」もわからんものにどう突っ込めと w
sizeof が size_t 型の値を返すのは当たり前で float とかワケわからんこと言われても困惑するだけ
出してきた「意図」もわからんものにどう突っ込めと w
sizeof が size_t 型の値を返すのは当たり前で float とかワケわからんこと言われても困惑するだけ
816デフォルトの名無しさん (ワッチョイ 9711-1B52)
2017/07/09(日) 20:27:57.13ID:aZRl9YVa0 仮に c++ の typeid のようなものが実装されてたら何を返すんだろう?
size_t に割あたってる整数の型であって size_t そのものは返さない気もするが
size_t に割あたってる整数の型であって size_t そのものは返さない気もするが
817デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/09(日) 21:16:46.06ID:DwPx7o2S0818デフォルトの名無しさん (ワッチョイ ffa2-KuRC)
2017/07/10(月) 00:20:27.86ID:LlABZZSK0 おいQZごみ回答はやめとけ
819デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/10(月) 05:01:56.54ID:3theqA1Q0820デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/10(月) 05:25:51.74ID:JKtUlR/N0821デフォルトの名無しさん (フリッテル MM4f-/fb0)
2017/07/10(月) 06:04:11.75ID:1stf4kaQM アスペ同士の会話は訳がわからんな
822デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/10(月) 08:34:02.15ID:JKtUlR/N0 >>821
おまえも同類だ
おまえも同類だ
823デフォルトの名無しさん (ドコグロ MM8b-Ra9a)
2017/07/10(月) 09:14:14.93ID:ssjcNeI9M はぁ?お前だろ。
ってか誰だよ?
オレは誰だよ?
ってか誰だよ?
オレは誰だよ?
824デフォルトの名無しさん (スップ Sd3f-0UkT)
2017/07/10(月) 09:23:56.47ID:NWwU0Zhtd ここはしょうがくせいのたまりば?
825デフォルトの名無しさん (ワッチョイ 174b-R6aQ)
2017/07/10(月) 09:32:25.86ID:FFzIEFLy0 あー!授業中に2chしたらいーけないんだー!
826デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/10(月) 09:46:21.35ID:JKtUlR/N0827デフォルトの名無しさん (ワッチョイ 9f11-d65a)
2017/07/10(月) 10:48:23.17ID:3theqA1Q0828デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/10(月) 11:38:17.15ID:JKtUlR/N0829デフォルトの名無しさん (ワッチョイ 9f6f-WUUN)
2017/07/10(月) 11:59:47.48ID:uinqb5xX0 底が見えてきたな
830デフォルトの名無しさん (ワッチョイ ff1c-2mCk)
2017/07/10(月) 12:06:39.12ID:JKtUlR/N0 国会にもよく似たゴミが来てるぞ
http://snjpn.net/archives/24782
http://snjpn.net/archives/24782
831デフォルトの名無しさん (ワッチョイ 5711-rvkC)
2017/07/11(火) 18:55:41.44ID:dSS1j36W0 [][Tebla][]
}
000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS
001-GYORLith"0\R"/"ESUBA"%$%
HADO-"EM","L","O","NU"###END
}
000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS
001-GYORLith"0\R"/"ESUBA"%$%
HADO-"EM","L","O","NU"###END
832デフォルトの名無しさん (ワッチョイ 2a6c-S4qQ)
2017/07/13(木) 11:06:39.28ID:BCHZTwvD0 Makefileで、
.PHONY: doc
doc:
doxygen
みたいに毎回.PHONY書くのあほっぽいんだけど、1行にならん?
.PHONY: doc
doc:
doxygen
みたいに毎回.PHONY書くのあほっぽいんだけど、1行にならん?
833デフォルトの名無しさん (ワッチョイ 4a69-1jjp)
2017/07/13(木) 12:01:26.06ID:LenxTGcs0 C言語でインラインアセンブラが使える文法の違いってどこかに解説ありますか?
asm{}文の表記のしかたが違う
asm{}文の表記のしかたが違う
834デフォルトの名無しさん (スッップ Sd70-YkGU)
2017/07/13(木) 13:21:33.92ID:b1PvI/zld コンパイラの説明書!
835デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/13(木) 16:20:17.23ID:PWiSD9vP0 ISO/IEC9899:2011で、asmについて書かれているのは、全文中でたったのこれだけ
J. 5.10 The asm keyword
The asm keyword may be used to insert assembly language directly into the translator output (6.8). The most common implementation is via a statement of the form:
asm ( character-string-literal );
asmはたぶんコンパイル結果にアセンブラを生中出しするために使われる
たいていこうなっている
asm(文字列リテラル);
つまりこれ以上はGNUやM$に聞けってこと
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
https://msdn.microsoft.com/ja-jp/library/4ks26t93.aspx
J. 5.10 The asm keyword
The asm keyword may be used to insert assembly language directly into the translator output (6.8). The most common implementation is via a statement of the form:
asm ( character-string-literal );
asmはたぶんコンパイル結果にアセンブラを生中出しするために使われる
たいていこうなっている
asm(文字列リテラル);
つまりこれ以上はGNUやM$に聞けってこと
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
https://msdn.microsoft.com/ja-jp/library/4ks26t93.aspx
836デフォルトの名無しさん (ワッチョイ 5c7a-KmKO)
2017/07/13(木) 17:03:33.50ID:32wk5maY0 そもそもの仕様として、
構造体のメンバーの参照に '.' と '->' を
使い分ける必要性がわからないんだけど、なぜ?
間接参照だと意識しろっていう教育的な意味以外思い付かん
構造体のメンバーの参照に '.' と '->' を
使い分ける必要性がわからないんだけど、なぜ?
間接参照だと意識しろっていう教育的な意味以外思い付かん
837デフォルトの名無しさん (ワッチョイ 386f-/Dy+)
2017/07/13(木) 17:24:51.23ID:9amqftWh0 (*hoge).piyo
hoge->piyo
どっちでもいいけど後者の方が簡単というだけの話
hoge->piyo
どっちでもいいけど後者の方が簡単というだけの話
838デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/13(木) 18:47:04.29ID:PWiSD9vP0 そういうことじゃなく
Javaの参照ドットみたいなことに
なぜしなかったのか、だろ
ポインタを参照だと言い張るだけでいいのにと
Javaの参照ドットみたいなことに
なぜしなかったのか、だろ
ポインタを参照だと言い張るだけでいいのにと
839デフォルトの名無しさん (JP 0H99-QjT/)
2017/07/13(木) 20:54:14.63ID:VVeozCkKH 構造体は全部参照だということにしたいの?
それすると、宣言するときに領域確保して、
いらなくなったらガベコレするっていう機構を組み込んどく必要があって、
Cのシンプルさにまったく合わなくなる。
それすると、宣言するときに領域確保して、
いらなくなったらガベコレするっていう機構を組み込んどく必要があって、
Cのシンプルさにまったく合わなくなる。
840デフォルトの名無しさん (ワッチョイ 6e9a-YkGU)
2017/07/13(木) 20:55:07.17ID:lX8cJUTX0 違う意味だから違う記号
841デフォルトの名無しさん (ワッチョイ be02-7wp+)
2017/07/13(木) 21:00:00.33ID:5QMVP3z90 高橋麻奈も
おばさんになったな。
おばさんになったな。
842デフォルトの名無しさん (ワッチョイ 7e32-vfgv)
2017/07/13(木) 21:29:51.07ID:e9IZxggq0 >>832
毎回の意味がわからんな。
毎回の意味がわからんな。
843デフォルトの名無しさん (ワッチョイ f16a-KmKO)
2017/07/13(木) 22:00:17.18ID:EExJF9140844デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/13(木) 22:09:19.10ID:PWiSD9vP0845デフォルトの名無しさん (ワッチョイ f0b6-MRQN)
2017/07/13(木) 22:11:04.90ID:WI/JuPuE0 ポインタなら->の方が分かりやすいでしょ
もしかして矢印って分からない?
もしかして矢印って分からない?
846デフォルトの名無しさん (ワッチョイ 3f11-1CH6)
2017/07/13(木) 22:11:58.75ID:LTIPW4bg0 -> で書いているのを . でも許したとして、コンパイラに不都合が出てくるんだろうか?
((struct foo*)0)->member ⇒ ((struct foo*)0).member
キャストの後の括弧がなくても通すと リテラルと繋がるから面倒をおこしそうだけども
(struct foo*)0->member ⇒ (struct foo*)0.member
そういうわけでもなさそうだし
((struct foo*)0)->member ⇒ ((struct foo*)0).member
キャストの後の括弧がなくても通すと リテラルと繋がるから面倒をおこしそうだけども
(struct foo*)0->member ⇒ (struct foo*)0.member
そういうわけでもなさそうだし
847デフォルトの名無しさん (ワッチョイ 6e9a-YkGU)
2017/07/13(木) 22:13:53.71ID:lX8cJUTX0 グローバル変数から関数の引数にしたりするときに、置換が面倒だと思うことはある
C++だと山椒があるんでそういうことも少ない
C++だと山椒があるんでそういうことも少ない
848デフォルトの名無しさん (ワッチョイ be02-7wp+)
2017/07/13(木) 22:40:18.99ID:5QMVP3z90 参照はピリリと辛いのさ
849デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/13(木) 22:48:52.06ID:ZRvPs5t50 >>846
思想としてそこまで意識して書き、ソース上にもその痕跡を残せってことでしょ。
他言語で言うプロパティの良し悪しと同じ議論だよ。
好き嫌いはあれども、正しい or 間違いの結論はでない。
コンパイラはエラーを検出できてるんだから、
その場合は . を -> と読み替えろ、というルーチンを入れれば君が欲しいものは簡単に作れる。
でも誰も用意しなかった。それが事実だね。
思想としてそこまで意識して書き、ソース上にもその痕跡を残せってことでしょ。
他言語で言うプロパティの良し悪しと同じ議論だよ。
好き嫌いはあれども、正しい or 間違いの結論はでない。
コンパイラはエラーを検出できてるんだから、
その場合は . を -> と読み替えろ、というルーチンを入れれば君が欲しいものは簡単に作れる。
でも誰も用意しなかった。それが事実だね。
850デフォルトの名無しさん (ワッチョイ f16a-KmKO)
2017/07/13(木) 23:28:37.17ID:EExJF9140851デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/14(金) 00:02:31.73ID:jsZNOhnp0 >>850
> 「教育的な意味」だけのことでいいんだな
>>839に答えは既に書いてあるだろ。アホなのか?
具体的にはスタック上に構造体を取って高速化する手法が使えなくなるんだよ。
(大抵の他言語では記述方法自体が用意されていない。
VC++/CLIではvalue型が用意されていて効果があることになっている。
が、ろくな説明が見当たらないorz)
古いが以下。
http://www.eonet.ne.jp/~maeda/cpp/value.htm
MS公式は以下。全く説明する気が無いw
https://msdn.microsoft.com/ja-jp/library/ke3a209d.aspx
というか、そこらへんが面倒だというのならJavaやC#使えって話でしかなく、
今の時代にC使うのならそこまで含めてチューニングする気で書け、でしかない。
> 「教育的な意味」だけのことでいいんだな
>>839に答えは既に書いてあるだろ。アホなのか?
具体的にはスタック上に構造体を取って高速化する手法が使えなくなるんだよ。
(大抵の他言語では記述方法自体が用意されていない。
VC++/CLIではvalue型が用意されていて効果があることになっている。
が、ろくな説明が見当たらないorz)
古いが以下。
http://www.eonet.ne.jp/~maeda/cpp/value.htm
MS公式は以下。全く説明する気が無いw
https://msdn.microsoft.com/ja-jp/library/ke3a209d.aspx
というか、そこらへんが面倒だというのならJavaやC#使えって話でしかなく、
今の時代にC使うのならそこまで含めてチューニングする気で書け、でしかない。
852デフォルトの名無しさん (ブーイモ MMfd-QjT/)
2017/07/14(金) 00:16:04.99ID:1+0wIQjnM 839だけど >>851 は周回遅れ。
構造体へのポインタでも、構造体でも、. を使う文法にできるんじゃねっていう主張。
今のところ俺もそれへの具体的な反論を用意できていない。
「教育的」っていうのは違うと思うがな。
構造体へのポインタでも、構造体でも、. を使う文法にできるんじゃねっていう主張。
今のところ俺もそれへの具体的な反論を用意できていない。
「教育的」っていうのは違うと思うがな。
853デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/14(金) 00:35:26.21ID:jsZNOhnp0 >>852
いやみりゃ分かるが 851=849で、俺もそれは否定しない。
ただ、確かに851は間違いだったわ。
確保時の文法が異なっていて、それで十分だから、その後は区別する必要はないね。
見た目、直接か間接か分かるようにしろってことだろ。
いやみりゃ分かるが 851=849で、俺もそれは否定しない。
ただ、確かに851は間違いだったわ。
確保時の文法が異なっていて、それで十分だから、その後は区別する必要はないね。
見た目、直接か間接か分かるようにしろってことだろ。
854デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 05:37:38.18ID:JCM3Qqhn0 ポインタなら(*foo).member と書くべきのところ->で書けるようにしたってことだけじゃないの?
糖衣構文的なオプションだろう
つうか、どちらもドット演算子に統一した場合、
ポインタなのにデリファレンスしないで値にアクセスできる仕様はCの文法としておかしくね?
糖衣構文的なオプションだろう
つうか、どちらもドット演算子に統一した場合、
ポインタなのにデリファレンスしないで値にアクセスできる仕様はCの文法としておかしくね?
855デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 05:52:17.16ID:JCM3Qqhn0 逆にドット演算子の意味を考えてみると、これ変数からのオフセットだろ
856デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 06:19:15.44ID:JCM3Qqhn0 デリファレンスしてもしなくても意味が同じという仕様にした場合、
構造体のポインタのポインタだともっとおかしなことになる
やっぱりダメなんだよw
構造体のポインタのポインタだともっとおかしなことになる
やっぱりダメなんだよw
857デフォルトの名無しさん (ブーイモ MMed-QjT/)
2017/07/14(金) 06:56:35.87ID:ES2lu6HJM その反論じゃダメージゼロだ
858デフォルトの名無しさん (ドコグロ MM46-OTuW)
2017/07/14(金) 07:00:49.03ID:8xomc53MM >>843
struct s { int *a; };
void f(struct s *sp){
int b = 1;
sp.a = &b; /* 今の文法なら sp->a = &b; */
x = sp.a;
って書かれたら x には b へのポインタが入るの?
それとも 1 が入るの?
まさか右辺の型に依存して変わるとか?
struct s { int *a; };
void f(struct s *sp){
int b = 1;
sp.a = &b; /* 今の文法なら sp->a = &b; */
x = sp.a;
って書かれたら x には b へのポインタが入るの?
それとも 1 が入るの?
まさか右辺の型に依存して変わるとか?
859デフォルトの名無しさん (ワッチョイ c3f4-1CH6)
2017/07/14(金) 07:45:04.78ID:OkthEzhE0 最初Cのソース見たとき -> って記述がなんのジョークかと思ったわ。
860デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 07:47:03.66ID:JCM3Qqhn0861デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 07:52:21.63ID:JCM3Qqhn0 いや問題はそこじゃないな
862デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/14(金) 08:05:49.17ID:ZvHE7cBu0863デフォルトの名無しさん (ワッチョイ 386f-/Dy+)
2017/07/14(金) 08:06:19.82ID:OlhrA2fz0 (*pa).m と a->m
(*pa+i) と a[i]
お好きな方をどうぞ
(*pa+i) と a[i]
お好きな方をどうぞ
864デフォルトの名無しさん (ワッチョイ df6f-qBah)
2017/07/14(金) 09:01:40.73ID:i0uGqEt60865デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/14(金) 10:09:02.17ID:ZvHE7cBu0866デフォルトの名無しさん (ワッチョイ ce88-JuPl)
2017/07/14(金) 10:36:06.28ID:7SJq6nEP0 字下げスタイルについて質問です
現在職業訓練校で習っているのですがそこの先生が
「プロはみんなこっち(K&R)だから。最近の教科書はこういうの(オールマン)増えてるけど、初心者向けの本書いてる人はそもそもプログラマじゃないから……」と。
自分がオールマン好きなのと、本を書いてくれる人たちをばかにするような言い方でちょっとむっとしたのですが、実際にK&Rばかりなんでしょうか
現在職業訓練校で習っているのですがそこの先生が
「プロはみんなこっち(K&R)だから。最近の教科書はこういうの(オールマン)増えてるけど、初心者向けの本書いてる人はそもそもプログラマじゃないから……」と。
自分がオールマン好きなのと、本を書いてくれる人たちをばかにするような言い方でちょっとむっとしたのですが、実際にK&Rばかりなんでしょうか
867デフォルトの名無しさん (JP 0H99-QjT/)
2017/07/14(金) 10:58:17.61ID:XOCK9tWfH868デフォルトの名無しさん (JP 0H99-QjT/)
2017/07/14(金) 11:03:48.20ID:XOCK9tWfH >>862
IQ180のお前さんならコード例一瞬で出せそうだからよろしく。
IQ180のお前さんならコード例一瞬で出せそうだからよろしく。
869デフォルトの名無しさん (ワッチョイ df6f-qBah)
2017/07/14(金) 12:28:17.80ID:i0uGqEt60 >>865
コンパイラが忖度してデリファレンスしてくれるって事じゃん
コンパイラが忖度してデリファレンスしてくれるって事じゃん
870デフォルトの名無しさん (ドコグロ MM36-Aifm)
2017/07/14(金) 13:06:11.17ID:XJoggiB0M >>866
今は他言語含めてK&Rが主流。昔の初心者本にオールマンスタイルで書かれてるのがあって
自分も最初は括弧の対応が分かりやすいからそれを使ってたけど
今は使わなくなった。括弧の対応なんて見れば分かるので重要じゃなくなる
今は他言語含めてK&Rが主流。昔の初心者本にオールマンスタイルで書かれてるのがあって
自分も最初は括弧の対応が分かりやすいからそれを使ってたけど
今は使わなくなった。括弧の対応なんて見れば分かるので重要じゃなくなる
871デフォルトの名無しさん (ワッチョイ d4db-B6bl)
2017/07/14(金) 13:16:54.77ID:q7yAZvho0 sizeof 関数 って何ぞ?
872デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/14(金) 14:28:28.54ID:ZvHE7cBu0873デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/14(金) 15:00:47.41ID:JCM3Qqhn0 >>864
C FAQ 4.12
http://www.kouno.jp/home/c_faq/c4.html#12
配列名と関数名が特殊なのは、ポインタに成り下がるからなんだそうだ
構造体はどうだろうか?
C FAQ 4.12
http://www.kouno.jp/home/c_faq/c4.html#12
配列名と関数名が特殊なのは、ポインタに成り下がるからなんだそうだ
構造体はどうだろうか?
874デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/14(金) 15:04:40.25ID:ZvHE7cBu0 >>866
その「先生」もプログラマじゃなさそうに聞こえる
どこのチームに入っても「こいつのクセうぜえ」と思われたらあかん
K&Rだのオールマンだのと言うが純粋なK&Rや純粋なオールマンはむしろ少数派で
たいていなにがしか方言があり、それを無視して原理主義に走ると
標準語を使っているはずの自分のほうが訛っていることにされてしまう
保護色ができないやつがプログラマの世間を知っているのか疑わしい
もしくは、元プログラマでも引退してからずいぶん長いとかな
プログラマ以外の世間でも「前の会社では」が口癖の新入りが干されるのと同じで
狭い世界の狭い正義にとらわれたスッパマンに居場所はない
その「先生」もプログラマじゃなさそうに聞こえる
どこのチームに入っても「こいつのクセうぜえ」と思われたらあかん
K&Rだのオールマンだのと言うが純粋なK&Rや純粋なオールマンはむしろ少数派で
たいていなにがしか方言があり、それを無視して原理主義に走ると
標準語を使っているはずの自分のほうが訛っていることにされてしまう
保護色ができないやつがプログラマの世間を知っているのか疑わしい
もしくは、元プログラマでも引退してからずいぶん長いとかな
プログラマ以外の世間でも「前の会社では」が口癖の新入りが干されるのと同じで
狭い世界の狭い正義にとらわれたスッパマンに居場所はない
875デフォルトの名無しさん (ワッチョイ b00d-1CH6)
2017/07/14(金) 15:11:15.53ID:UhIUjxkr0 そこのコーディング規約に従うまで
ただ、古典だけあってK&Rスタイルに近くなると話が早くなる
ただ、古典だけあってK&Rスタイルに近くなると話が早くなる
876デフォルトの名無しさん (ワッチョイ d091-z+eH)
2017/07/14(金) 15:54:44.39ID:TDDe5YT10 c#はオールマンだし、どっちでもいいな
877デフォルトの名無しさん (ワッチョイ 466d-RG79)
2017/07/14(金) 18:24:36.67ID:TDGI45F00 え?C#はオールマンなの?
878デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/14(金) 19:07:42.77ID:pMddghpW0 コーディングスタイルなんて、GNUスタイルとかいう汚物じゃなければ何でもいいわ
879デフォルトの名無しさん (ワッチョイ 466d-xCJC)
2017/07/14(金) 19:09:37.89ID:TDGI45F00 あなたの色に染まります!
880デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/14(金) 19:46:42.57ID:g8QLqbc9M >>877
そうらしい
C#
マイクロソフトはC# のコーディング規則を発表しており、これは、BSD/オールマンのスタイルに基づいている。
https://ja.m.wikipedia.org/wiki/%E5%AD%97%E4%B8%8B%E3%81%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB
そうらしい
C#
マイクロソフトはC# のコーディング規則を発表しており、これは、BSD/オールマンのスタイルに基づいている。
https://ja.m.wikipedia.org/wiki/%E5%AD%97%E4%B8%8B%E3%81%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB
881デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/14(金) 21:40:14.77ID:ZvHE7cBu0 汚物は消毒だ〜!!
882デフォルトの名無しさん (エーイモ SE9e-RQIi)
2017/07/15(土) 15:35:51.02ID:mwrVMnVyE clangにはソースコードを解析してコードを補完する機能がありますけど
gccにはこういう機能はないのでしょうか?
gccにはこういう機能はないのでしょうか?
883デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/15(土) 16:17:52.28ID:4RmHy8z30 >>858
> x には b へのポインタが入るの?
> それとも 1 が入るの?
その仕様にした場合は、 x の型によって決まる。
多分、結局のところは、float->doubleのような暗黙のキャスト、
structPtr* -> *structPtr を許すかどうかだろう。
許しても大した問題はないように思えるが。
ポインタを使える最近の言語はGoとRustか?
詳しい奴がいれば聞いてみればいいのではないかな。
C言語で問題だった点は当然改修されているだろうし。
> x には b へのポインタが入るの?
> それとも 1 が入るの?
その仕様にした場合は、 x の型によって決まる。
多分、結局のところは、float->doubleのような暗黙のキャスト、
structPtr* -> *structPtr を許すかどうかだろう。
許しても大した問題はないように思えるが。
ポインタを使える最近の言語はGoとRustか?
詳しい奴がいれば聞いてみればいいのではないかな。
C言語で問題だった点は当然改修されているだろうし。
884デフォルトの名無しさん (ドコグロ MM2e-OTuW)
2017/07/15(土) 16:57:34.95ID:hu77KrcYM >>883
> その仕様にした場合は、 x の型によって決まる
struct s { size_t *a; size_t *b; };
void f(struct s *sp){
size_t c[] = {1, 2};
sp.a = &c[0];
sp.b = &c[1];
x = sp.b - sp.a;
ってされたらどうするおつもり?
デリファレンスしてもしなくても結果は size_t だよ
> その仕様にした場合は、 x の型によって決まる
struct s { size_t *a; size_t *b; };
void f(struct s *sp){
size_t c[] = {1, 2};
sp.a = &c[0];
sp.b = &c[1];
x = sp.b - sp.a;
ってされたらどうするおつもり?
デリファレンスしてもしなくても結果は size_t だよ
885デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/15(土) 17:11:06.39ID:4RmHy8z30886デフォルトの名無しさん (ワッチョイ f146-I8+U)
2017/07/15(土) 17:16:20.81ID:pcaRmStc0887デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/15(土) 17:16:23.73ID:G5lsIkPM0 これだからなスクリプタは
スクリプタがプログラマ気取るなよと
トホホ
スクリプタがプログラマ気取るなよと
トホホ
888デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/15(土) 17:27:16.03ID:jhhap/jh0889デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/15(土) 17:42:18.56ID:jg2H7hGL0 大元の話で . 演算をポインタに対して適用したら ->とみなすという仕様なら矛盾はないと思うが、
>>843で「左辺が」とか書いたんで話がおかしくなっている気がする。
>>843で「左辺が」とか書いたんで話がおかしくなっている気がする。
890デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/15(土) 17:57:08.70ID:4RmHy8z30891デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/15(土) 18:03:19.98ID:Boc3n4O+0 ドットに統一した場合、コードレビューでNULLチェックを見逃す可能性がある
こっちの問題の方が大きいかもしれんな
こっちの問題の方が大きいかもしれんな
892デフォルトの名無しさん (ワッチョイ ce88-JuPl)
2017/07/15(土) 18:56:38.12ID:Ok1a2C+90 諸先輩方ご意見ありがとうございました
とりあえずその場所場所でのコーディングスタイルに合わせることが大事なのはわかりました
とりあえずその場所場所でのコーディングスタイルに合わせることが大事なのはわかりました
893デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/15(土) 19:20:07.01ID:jhhap/jh0894デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/15(土) 20:28:46.13ID:4RmHy8z30 >>891
-> を廃止して . に統一するのならその手の型チェックは緩くなる。
これは結局のところ、他言語でもなされている議論と同じで、
「静的チェックのための記述をどこまで許容するか」でしかない。
俺はCなら厳しい方が似合っていると思うが。
それはさておき、具体的にそのケースならnull許容型、って奴だろう。
他言語でも死ぬほど議論されているからググれ。
-> を廃止して . に統一するのならその手の型チェックは緩くなる。
これは結局のところ、他言語でもなされている議論と同じで、
「静的チェックのための記述をどこまで許容するか」でしかない。
俺はCなら厳しい方が似合っていると思うが。
それはさておき、具体的にそのケースならnull許容型、って奴だろう。
他言語でも死ぬほど議論されているからググれ。
895デフォルトの名無しさん (ワッチョイ d4db-B6bl)
2017/07/15(土) 22:24:26.68ID:Z+b63Gri0 >>886
画像検索汁
画像検索汁
896デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/16(日) 00:35:41.14ID:JuGvxIE40897デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/16(日) 01:49:05.19ID:AkX0kyqa0 >>896
> NULL許容で書けたところで、実行時にはNULLチェックするわけだから
いや、そうじゃない。
というかそっちの議論も多いようだから、誤解するのも分かるんだが。
以下を読むのがいいだろう。
> null許容参照型
> http://www.buildinsider.net/column/iwanaga-nobuyuki/012
Cに対して導入するとしたら以下か。
1. 「null非許容のポインタ」を文法的に用意する。
2. 「null非許容のポインタ」にはNULLは代入できない。(SyntaxError)
3. 「null非許容のポインタ」に「従来のポインタ」の値を代入するには明示的なキャストが必要。
これでヌルポを静的に検出できるようになる。
「null非許容のポインタ」に関しては実行時のNULLチェックは必要ない。
問題は3で、C++ならdynamic_castのみとして例外を投げればいいのだが、
Cの場合これは無理なので、
・リンター等でキャスト直前にNULLチェックしているかを検出する
・明示的キャストをマクロ等でNULLチェックのインライン関数等に置き換える
等の対策が必要にはなるが、
それでもNULLに対してクリーン/ダーティな区画を文法的に分離できるようになるので、
今よりはだいぶマシにはなる。
とはいえこれはbetterCとしてC++を使うのなら現行のC++でも似たようなことは十分できる。
だからわざわざ新文法が必要か?というのと、他と同様に、
静的チェック「だけ」のための新文法を導入する価値があるのか?
という話にはなる。
そして . と -> の話に戻すなら、
「『null非許容型の』struct* から *structへの暗黙的キャストを認める」
という仕様なら、そちらの危惧している部分については回避できることになる。
> NULL許容で書けたところで、実行時にはNULLチェックするわけだから
いや、そうじゃない。
というかそっちの議論も多いようだから、誤解するのも分かるんだが。
以下を読むのがいいだろう。
> null許容参照型
> http://www.buildinsider.net/column/iwanaga-nobuyuki/012
Cに対して導入するとしたら以下か。
1. 「null非許容のポインタ」を文法的に用意する。
2. 「null非許容のポインタ」にはNULLは代入できない。(SyntaxError)
3. 「null非許容のポインタ」に「従来のポインタ」の値を代入するには明示的なキャストが必要。
これでヌルポを静的に検出できるようになる。
「null非許容のポインタ」に関しては実行時のNULLチェックは必要ない。
問題は3で、C++ならdynamic_castのみとして例外を投げればいいのだが、
Cの場合これは無理なので、
・リンター等でキャスト直前にNULLチェックしているかを検出する
・明示的キャストをマクロ等でNULLチェックのインライン関数等に置き換える
等の対策が必要にはなるが、
それでもNULLに対してクリーン/ダーティな区画を文法的に分離できるようになるので、
今よりはだいぶマシにはなる。
とはいえこれはbetterCとしてC++を使うのなら現行のC++でも似たようなことは十分できる。
だからわざわざ新文法が必要か?というのと、他と同様に、
静的チェック「だけ」のための新文法を導入する価値があるのか?
という話にはなる。
そして . と -> の話に戻すなら、
「『null非許容型の』struct* から *structへの暗黙的キャストを認める」
という仕様なら、そちらの危惧している部分については回避できることになる。
898デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 07:21:30.62ID:xeCnao79M >>889
だから . 演算子を適用した結果がポインタならどうするんだ?
って指摘されてるだろ
ID:4RmHy8z30 はレスできなくなって
> エアプはマジで死ね。
とか恥ずかしい捨て台詞で逃げてるけど w
だから . 演算子を適用した結果がポインタならどうするんだ?
って指摘されてるだろ
ID:4RmHy8z30 はレスできなくなって
> エアプはマジで死ね。
とか恥ずかしい捨て台詞で逃げてるけど w
899デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 07:28:16.81ID:xeCnao79M >>897
> 問題は3で、C++ならdynamic_castのみとして例外を投げればいいのだが、
> Cの場合これは無理なので、
> ・リンター等でキャスト直前にNULLチェックしているかを検出する
> ・明示的キャストをマクロ等でNULLチェックのインライン関数等に置き換える
> 等の対策が必要にはなるが、
そんなアホな対策は要らんわ
キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
それに起因するエラーはプログラマの責任
C言語ってそう言う言語だろ
> 問題は3で、C++ならdynamic_castのみとして例外を投げればいいのだが、
> Cの場合これは無理なので、
> ・リンター等でキャスト直前にNULLチェックしているかを検出する
> ・明示的キャストをマクロ等でNULLチェックのインライン関数等に置き換える
> 等の対策が必要にはなるが、
そんなアホな対策は要らんわ
キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
それに起因するエラーはプログラマの責任
C言語ってそう言う言語だろ
900デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/16(日) 07:41:24.58ID:H6W6/XNn0 >>898
>だから . 演算子を適用した結果がポインタならどうするんだ?
. 演算の対象がポインタかそうでないかで分かれるだけで、演算の結果は
それがポインタならポインタとして扱えばいいだけだろ。何か問題あるのか?
>だから . 演算子を適用した結果がポインタならどうするんだ?
. 演算の対象がポインタかそうでないかで分かれるだけで、演算の結果は
それがポインタならポインタとして扱えばいいだけだろ。何か問題あるのか?
901デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 08:14:36.33ID:xeCnao79M902デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/16(日) 08:28:51.97ID:MBQ46mKu0 *sp.aで取れるじゃん
903デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/16(日) 08:32:10.19ID:H6W6/XNn0 >>858で x に入るのはbへのポインタとしか解釈しようがないと思うが、値とはどれのことを言っている?
bの値の1が欲しいなら普通に x = *sp.a; でいいだろ。
bの値の1が欲しいなら普通に x = *sp.a; でいいだろ。
904デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 09:37:42.33ID:xeCnao79M905デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/16(日) 09:51:29.40ID:H6W6/XNn0906デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/16(日) 09:59:26.34ID:JuGvxIE40 要するに、(*p).m を p.m と書けるということ
つまりデリファレンスの階層を一個省略しようってことで、
格段便利ってわけでもないし、かえってややこしいかもなw
これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
つまりデリファレンスの階層を一個省略しようってことで、
格段便利ってわけでもないし、かえってややこしいかもなw
これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
907デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/16(日) 10:06:14.91ID:AkX0kyqa0 >>902-903
だからエアプなんだって。話の通じなさ具合がおかしいだろ。
>>899もそうだ。
> キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
Cの場合はmallocの失敗がNULLになるんだから、これとかありえないだろ。
Cはnullありき、キャストありきで世界が構築されているから、
ヌルポ対策を静的にやりたいのならキャストも含めないと使い物にならない。
しかしエアプだからこれが分からない。マジでウザいから死ね。
> C言語ってそう言う言語だろ
これも違う。
C言語は静的な対策を拒否してない。動的な対策は全面拒否だが。
つっても通じないとは思うが。
>>904
> struct s sl;
> x = *sl.a;
エアプマジ死ねよ
というか、エアプがここに来る意味が俺には分からないのだが。
こいつらどの種のキチガイなの?
だからエアプなんだって。話の通じなさ具合がおかしいだろ。
>>899もそうだ。
> キャストまでしてNULL非許容の変数にNULL入れる奴はわかってやってるんだからそのまま入れてくれればいい
Cの場合はmallocの失敗がNULLになるんだから、これとかありえないだろ。
Cはnullありき、キャストありきで世界が構築されているから、
ヌルポ対策を静的にやりたいのならキャストも含めないと使い物にならない。
しかしエアプだからこれが分からない。マジでウザいから死ね。
> C言語ってそう言う言語だろ
これも違う。
C言語は静的な対策を拒否してない。動的な対策は全面拒否だが。
つっても通じないとは思うが。
>>904
> struct s sl;
> x = *sl.a;
エアプマジ死ねよ
というか、エアプがここに来る意味が俺には分からないのだが。
こいつらどの種のキチガイなの?
908デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 10:11:57.19ID:xeCnao79M909デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 10:12:48.56ID:xeCnao79M って書いてるそばから現れたわ w
910デフォルトの名無しさん (ドコグロ MM40-OTuW)
2017/07/16(日) 10:14:08.60ID:xeCnao79M911デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/16(日) 10:21:16.17ID:JuGvxIE40912デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/16(日) 10:33:31.23ID:AkX0kyqa0 >>906
> これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
実体になるまでデリファレンスしろ、というだけだから、出来なくはないと思うが。
> 格段便利ってわけでもないし、かえってややこしいかもなw
まあCがほぼ完成しているからな。導入する価値があるか微妙というのは同意。
> Cが見事にこなしていることは、全く"出来るだけシンプルにせよ、
> しかし、それ以上シンプルにするな"をしていることだ。
> そして、そのことがCを素晴らしいものにしている。言語はパワフルでありながら、ほぼ最小である。
> by Linus Torvalds
> https://srad.jp/~taro-nishino/journal/509450/
俺が思うに、Cに必要なのは階層(≒関数内関数)だよ。一部拡張されているようではあるが。
最近別言語だがCスタイルの記述(グローバル+関数、非オブジェクト指向)を読んだことがあって、
22K行のコードだが初見で簡単に目的のコードを探し当てられて、軽く衝撃だった。
Cが読みにくいのは100-500行のファイルで細切れになっているからであって、
あれ、設計者が分かりやすい順にcatしてくれていれば衝撃的に読みやすいことに気づいた。
> これ、ポインタが何段になっても p.m って書いて整合性取れるかい?
実体になるまでデリファレンスしろ、というだけだから、出来なくはないと思うが。
> 格段便利ってわけでもないし、かえってややこしいかもなw
まあCがほぼ完成しているからな。導入する価値があるか微妙というのは同意。
> Cが見事にこなしていることは、全く"出来るだけシンプルにせよ、
> しかし、それ以上シンプルにするな"をしていることだ。
> そして、そのことがCを素晴らしいものにしている。言語はパワフルでありながら、ほぼ最小である。
> by Linus Torvalds
> https://srad.jp/~taro-nishino/journal/509450/
俺が思うに、Cに必要なのは階層(≒関数内関数)だよ。一部拡張されているようではあるが。
最近別言語だがCスタイルの記述(グローバル+関数、非オブジェクト指向)を読んだことがあって、
22K行のコードだが初見で簡単に目的のコードを探し当てられて、軽く衝撃だった。
Cが読みにくいのは100-500行のファイルで細切れになっているからであって、
あれ、設計者が分かりやすい順にcatしてくれていれば衝撃的に読みやすいことに気づいた。
913デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/16(日) 10:47:18.34ID:AkX0kyqa0 あと、前方宣言必須というのも糞だ。
というか、今だにあれを放置している理由がよく分からない。
あれが無ければトップダウンで記述できるのでさらさら読める。
あれのおかげで下から構築しないといけないので、(include等つかって擬似的に回避できるが)
詳細まで確認する必要が無いときにも読まなくてもいい関数を読まされる事になる。
元々「世界の全てを把握して、絶対神として振舞え」という言語ではあるから、
「読みたくも無い関数を読まされたくねー」オブジェクト指向感性とは合わないが、
今更全てを把握できるほど世界は小さくないし、その必要が無いことも多い。
色々手抜きできる言語があることを知ってしまってからは、もっと手抜きさせてくれよーとは思う。
というか、今だにあれを放置している理由がよく分からない。
あれが無ければトップダウンで記述できるのでさらさら読める。
あれのおかげで下から構築しないといけないので、(include等つかって擬似的に回避できるが)
詳細まで確認する必要が無いときにも読まなくてもいい関数を読まされる事になる。
元々「世界の全てを把握して、絶対神として振舞え」という言語ではあるから、
「読みたくも無い関数を読まされたくねー」オブジェクト指向感性とは合わないが、
今更全てを把握できるほど世界は小さくないし、その必要が無いことも多い。
色々手抜きできる言語があることを知ってしまってからは、もっと手抜きさせてくれよーとは思う。
>>913
前方参照は確かにどうかと思うが、前方参照の制限が解消されたからといって読みやすさが改善するとは思えないね
現状でも底から読んでいけばいいだけなのではないか?
読みやすさは…識別子を日本語で書くのがよさそうだが
前方参照は確かにどうかと思うが、前方参照の制限が解消されたからといって読みやすさが改善するとは思えないね
現状でも底から読んでいけばいいだけなのではないか?
読みやすさは…識別子を日本語で書くのがよさそうだが
915デフォルトの名無しさん (ワッチョイ d4db-B6bl)
2017/07/16(日) 18:30:50.90ID:dVrh8pbL0 typedet struct
{
void ( *reset_func )( void );
unsigned long initial_stack;
void ( *divide_by_zero )( void );
・・・
} intvec_t;
#define INTVEC ( *( intvec_t* )0 )
{
void ( *reset_func )( void );
unsigned long initial_stack;
void ( *divide_by_zero )( void );
・・・
} intvec_t;
#define INTVEC ( *( intvec_t* )0 )
916デフォルトの名無しさん (ワッチョイ f146-I8+U)
2017/07/16(日) 21:14:38.36ID:TI5o59vg0 > 要するに、(*p).m を p.m と書けるということ
これ、できるできない以前に、初心者にきついな。
ルールを覚えるのは楽だけれど、例外事項が増えてくると、結局暗記になっちゃうからなあ。
これ、できるできない以前に、初心者にきついな。
ルールを覚えるのは楽だけれど、例外事項が増えてくると、結局暗記になっちゃうからなあ。
917デフォルトの名無しさん (ワッチョイ 7d33-RIgB)
2017/07/16(日) 21:46:19.69ID:aJG+vjk10 ts
918デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/16(日) 23:15:41.79ID:kT8dsikx0 >>913
プロトタイプ宣言というのがあってだね、それを宣言すればトップダウンで書ける。
プロトタイプ宣言というのがあってだね、それを宣言すればトップダウンで書ける。
919デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/17(月) 03:39:18.28ID:woO8V6Ze0920デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 05:22:39.76ID:6JtF0HSC0921デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 05:32:30.17ID:6JtF0HSC0 まあしかし俺は同じファイル内にあるにも関わらずプロトタイプ宣言入れないと
わかってくれないのが嫌で使われる個所よりも上に書いちゃうけどな。
同じファイル内なんだからわかって欲しいものではある。
そういや PASCAL なんかも前方参照しかなかったような気がするな。
あの当時の言語はこういうの当たり前だったのかな。
PASCALなんかだとわざわざそういう思想で作られたって感じもするが。
Cだと手抜いただけのように見える。w
わかってくれないのが嫌で使われる個所よりも上に書いちゃうけどな。
同じファイル内なんだからわかって欲しいものではある。
そういや PASCAL なんかも前方参照しかなかったような気がするな。
あの当時の言語はこういうの当たり前だったのかな。
PASCALなんかだとわざわざそういう思想で作られたって感じもするが。
Cだと手抜いただけのように見える。w
922デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/17(月) 06:51:56.93ID:woO8V6Ze0 うん、Cのバヤイは確信的な手抜きだな
923デフォルトの名無しさん (ワッチョイ 706f-qBah)
2017/07/17(月) 07:49:13.30ID:Dn7+fEGp0 ほー PASCALが前方参照しかないとか初めて聞いたわ
ID:kT8dsikx0とID:6JtF0HSC0の次の活躍に期待だな
ID:kT8dsikx0とID:6JtF0HSC0の次の活躍に期待だな
924デフォルトの名無しさん (ワッチョイ a76f-xIn+)
2017/07/17(月) 07:57:41.59ID:HedtDN7o0 何時、前後を覚えるのかな?
925デフォルトの名無しさん (ワッチョイ 466d-N1Eg)
2017/07/17(月) 08:01:01.05ID:n9t4u9yj0 >>921
Pascal は LL(1)言語としてつくってあり、ワンパスでパースできる、その意地があるんだね
Pascal は LL(1)言語としてつくってあり、ワンパスでパースできる、その意地があるんだね
926デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 08:11:52.63ID:PKmAGp8M0 Cもワンパスのため前方宣言必須ということのようだが、
一回舐めて拾うだけでいいんだし、今時こだわる必要も無いだろう
ヘッダに出した公開インターフェースは先、モジュール内プライベートはその下がわかりやすいよな
一回舐めて拾うだけでいいんだし、今時こだわる必要も無いだろう
ヘッダに出した公開インターフェースは先、モジュール内プライベートはその下がわかりやすいよな
927デフォルトの名無しさん (ワッチョイ 466d-N1Eg)
2017/07/17(月) 08:13:23.74ID:n9t4u9yj0 >>926
C はプリプロを除いてもワンパスにはならないと思う
C はプリプロを除いてもワンパスにはならないと思う
928デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 08:53:08.22ID:U2FIHXXv0929デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 08:57:46.36ID:LYlgQVUQ0 >>920
さすがに知っているぞ。
俺は君と同様それはほぼ使わないというだけで。
というか、あの「事前に分かってないと使えない」事は正確には何と言うんだ?
「前方宣言必須」というのはどうも「前方宣言」自体が別の用語らしいのでまずかったようだ。
>>921
Cの場合、1パスコンパイルするためのものだ。
Cは紙テープ時代からある。
Wikiによると10文字/秒らしいので、1KBのファイルなら読み取りに1分40秒かかる。
これで2パスされると死ねるから、1パスでいけるように、
あらかじめ人間が順番を整えとけ(=機械に人間が合わせろ)というものだ。
どう考えても今はそんな時代じゃないだろ。
2パスに変更して「後方参照」(という用語でいいのか?)出来るようにすればいいだけだ。
紙テープの時代なら時代の要請だが、HDDの時代にこれを大事に守る理由は無い。
だから新しい全ての言語はこの制限は無い。必要ないからだ。
(ただしPythonを除く。この点だけでもPythonは糞だと断定できる)
ところがな、>>919みたいな老害は、
できる理由を見つけてきて頑なに現状維持しようとするものだ。
Cの場合は、確かに下から構築していけばプロトタイプ宣言は通常全く使わずに構築できる。
だからそれが作法になってしまってるだろ。
Pythonの場合はおそらくこれ、つまり、下からの構築を強制させるためにあえて採用してないのだと思う。
しかしな、他人のコードを一から読むとき、下から読む必要はなく、上から読んだほうが楽だ。
(正確には中レベルから。一番上のレベルも読む必要ないから)
お前らがそれに気づけてないのだとしたら、お前らはCしか読んでないからだ。
というか俺も最近までそうだったのだが。
さすがに知っているぞ。
俺は君と同様それはほぼ使わないというだけで。
というか、あの「事前に分かってないと使えない」事は正確には何と言うんだ?
「前方宣言必須」というのはどうも「前方宣言」自体が別の用語らしいのでまずかったようだ。
>>921
Cの場合、1パスコンパイルするためのものだ。
Cは紙テープ時代からある。
Wikiによると10文字/秒らしいので、1KBのファイルなら読み取りに1分40秒かかる。
これで2パスされると死ねるから、1パスでいけるように、
あらかじめ人間が順番を整えとけ(=機械に人間が合わせろ)というものだ。
どう考えても今はそんな時代じゃないだろ。
2パスに変更して「後方参照」(という用語でいいのか?)出来るようにすればいいだけだ。
紙テープの時代なら時代の要請だが、HDDの時代にこれを大事に守る理由は無い。
だから新しい全ての言語はこの制限は無い。必要ないからだ。
(ただしPythonを除く。この点だけでもPythonは糞だと断定できる)
ところがな、>>919みたいな老害は、
できる理由を見つけてきて頑なに現状維持しようとするものだ。
Cの場合は、確かに下から構築していけばプロトタイプ宣言は通常全く使わずに構築できる。
だからそれが作法になってしまってるだろ。
Pythonの場合はおそらくこれ、つまり、下からの構築を強制させるためにあえて採用してないのだと思う。
しかしな、他人のコードを一から読むとき、下から読む必要はなく、上から読んだほうが楽だ。
(正確には中レベルから。一番上のレベルも読む必要ないから)
お前らがそれに気づけてないのだとしたら、お前らはCしか読んでないからだ。
というか俺も最近までそうだったのだが。
930デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 08:58:08.57ID:LYlgQVUQ0 既に書いたが、Cの読みにくさは、ファイルが細切れになっていることもある。
これはOOPも別の意味で同罪で、「で、その処理は具体的にはどこに書いてあるんですかね?」は常だ。
だからそんなものだと思っているのだと思う。
ところが最近、後方参照できる言語でCスタイルで書かれているコードを読んで戦慄した。
圧倒的に読みやすいのだ。(OOPよりも)
上からスクロールしていくだけで、読み飛ばしていいか、そうでないか、はっきりと分かった。
ところが肝心のCにはこの類のソースコードは存在しないんだよ。後方参照禁止だから。
後方参照が出来るようになれば、設計者が自由に関数を配置できるようになる。
当然、一番分かりやすいように並べることになる。
今のCにはその自由度が無いんだよ。人間が機械に合わせる仕様だから。
「プロトタイプ宣言」とかいう二度手間をやらないと、最もわかりやすい順に並べられない。
だから今のCソースは基本的に「分かりにくい」。
少なくとも後方参照できればもっとわかりやすくなる方向でしかない。
だからいまだにそれを放置しているのはマジで糞だって事。
老害的には「下から構築しろ」という教育効果を主張するのだろうが、そんなのは要らない。
これはOOPも別の意味で同罪で、「で、その処理は具体的にはどこに書いてあるんですかね?」は常だ。
だからそんなものだと思っているのだと思う。
ところが最近、後方参照できる言語でCスタイルで書かれているコードを読んで戦慄した。
圧倒的に読みやすいのだ。(OOPよりも)
上からスクロールしていくだけで、読み飛ばしていいか、そうでないか、はっきりと分かった。
ところが肝心のCにはこの類のソースコードは存在しないんだよ。後方参照禁止だから。
後方参照が出来るようになれば、設計者が自由に関数を配置できるようになる。
当然、一番分かりやすいように並べることになる。
今のCにはその自由度が無いんだよ。人間が機械に合わせる仕様だから。
「プロトタイプ宣言」とかいう二度手間をやらないと、最もわかりやすい順に並べられない。
だから今のCソースは基本的に「分かりにくい」。
少なくとも後方参照できればもっとわかりやすくなる方向でしかない。
だからいまだにそれを放置しているのはマジで糞だって事。
老害的には「下から構築しろ」という教育効果を主張するのだろうが、そんなのは要らない。
931デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 08:59:15.27ID:U2FIHXXv0 >>927
シングルパスでダメな構文あったっけ?
シングルパスでダメな構文あったっけ?
932デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/17(月) 09:03:20.21ID:iqtGzeji0 ここで議論している人の 前方宣言 後方参照 の定義が一致しているのか気になる。
933デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 09:07:49.80ID:U2FIHXXv0934デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 09:11:05.59ID:LYlgQVUQ0 >>932
というか今更その辺の用語は無いんだよ。理由は他言語では必要ないから。
「後方参照」も正規表現でしか使われてないし、
しかもあれって「後方」よりも「バッファ」と言え、という類のものであるし。
とりあえず俺の定義は、
前方宣言必須:どうやらこれは俺の誤用だったすまん。「事前に宣言しておかないと使えない」の意で使ってた
後方参照:後で定義されている関数を使うこと
だね。これが適切かは分からんが、Cやってる奴ならあーはいはい程度には通じるとは思う。
というか今更その辺の用語は無いんだよ。理由は他言語では必要ないから。
「後方参照」も正規表現でしか使われてないし、
しかもあれって「後方」よりも「バッファ」と言え、という類のものであるし。
とりあえず俺の定義は、
前方宣言必須:どうやらこれは俺の誤用だったすまん。「事前に宣言しておかないと使えない」の意で使ってた
後方参照:後で定義されている関数を使うこと
だね。これが適切かは分からんが、Cやってる奴ならあーはいはい程度には通じるとは思う。
935デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 09:14:46.40ID:LYlgQVUQ0 >>933
知らんね。
つかあれ、そうなのか。だとすると動的に構築するから致し方なし、って奴か。
JavaScriptが糞な点と同じだな。
まあどの道2パスすれば回避できるだけのことを、なぜやらん?ってのはある。
Pythonは聞けば聞くほど糞なので、俺はやってない。
知らんね。
つかあれ、そうなのか。だとすると動的に構築するから致し方なし、って奴か。
JavaScriptが糞な点と同じだな。
まあどの道2パスすれば回避できるだけのことを、なぜやらん?ってのはある。
Pythonは聞けば聞くほど糞なので、俺はやってない。
936デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 09:19:12.83ID:PKmAGp8M0937デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 09:39:52.04ID:PKmAGp8M0938デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 09:50:00.72ID:U2FIHXXv0939デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 09:54:21.13ID:U2FIHXXv0 >>936
Pascalはラベルに数値が(と言うか数値しか)使えないこととコンパイラを単純にするためにlabel文で宣言が要るけど、コンパイラの実装としては必須じゃないでしょ
goto文の飛び先はラベル見つけた時点で入れればいいだけだし
Pascalはラベルに数値が(と言うか数値しか)使えないこととコンパイラを単純にするためにlabel文で宣言が要るけど、コンパイラの実装としては必須じゃないでしょ
goto文の飛び先はラベル見つけた時点で入れればいいだけだし
940デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 10:26:39.93ID:+Y9zLnEF0 K&Rの時代じゃあるまいし、前方宣言を原型形式でない関数宣言子と捉える奴なんていねーだろ
プロトタイプ宣言とか言い出した>>918は例外として
プロトタイプ宣言とか言い出した>>918は例外として
941デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 10:42:28.15ID:LYlgQVUQ0 >>938
お前はPython信者なのか?ならばもう一度言ってやるよ。Pythonはそこも糞だ。
Pythonはdefで関数宣言を行い、それがそのままオブジェクトになる仕様らしい。
つまりそこで暗黙の代入があるから、後方参照できないとの理由だ。まさに糞だ。
JavaScriptの場合は、これらの宣言を分けている。つまり、
function func0(){console.log('func0');} // (A) console.logはCでいうprintf
var func1 = function(){console.log('func1');}; // (B)
ここでfunc0は後方参照できる。つまりスコープに入っていればいつでも使える。
func1は関数ポインタであり、代入以降でしか使えない。
これが妥当な仕様だ。
関数ポインタは再代入可能だから、順に処理する必要があるからだ。
Cの場合、関数ポインタへの代入は自前で行うわけだから、
コンパイラの努力だけで後方参照できないという制限を解除することが出来る。
いまだにやってないのはただの手抜きというよりも確信犯だろうが。
なおJavaScriptでもPythonと同様に関数はオブジェクトになるのだが、
要するに「スコープ内で先に処理して再代入禁止にしておくべきfunction(A)」と
「順に処理するべき関数ポインタ(B)」を明示的に分離して記述できるだけだ。
みたところPythonには(A)しかなさそうなので、技術的に出来ない理由は無い。
この点についてはCも同様に糞だが、時代の要請があったという理由はある。
Pythonは本当に何の意味も無く制限をつけている、ただの糞だ。
お前はPython信者なのか?ならばもう一度言ってやるよ。Pythonはそこも糞だ。
Pythonはdefで関数宣言を行い、それがそのままオブジェクトになる仕様らしい。
つまりそこで暗黙の代入があるから、後方参照できないとの理由だ。まさに糞だ。
JavaScriptの場合は、これらの宣言を分けている。つまり、
function func0(){console.log('func0');} // (A) console.logはCでいうprintf
var func1 = function(){console.log('func1');}; // (B)
ここでfunc0は後方参照できる。つまりスコープに入っていればいつでも使える。
func1は関数ポインタであり、代入以降でしか使えない。
これが妥当な仕様だ。
関数ポインタは再代入可能だから、順に処理する必要があるからだ。
Cの場合、関数ポインタへの代入は自前で行うわけだから、
コンパイラの努力だけで後方参照できないという制限を解除することが出来る。
いまだにやってないのはただの手抜きというよりも確信犯だろうが。
なおJavaScriptでもPythonと同様に関数はオブジェクトになるのだが、
要するに「スコープ内で先に処理して再代入禁止にしておくべきfunction(A)」と
「順に処理するべき関数ポインタ(B)」を明示的に分離して記述できるだけだ。
みたところPythonには(A)しかなさそうなので、技術的に出来ない理由は無い。
この点についてはCも同様に糞だが、時代の要請があったという理由はある。
Pythonは本当に何の意味も無く制限をつけている、ただの糞だ。
942デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 10:49:45.35ID:U2FIHXXv0 知ったかが慌ててググって的はずれの長文乙
Python 関数ポインタ
辺りでググる程度の知恵もないのが残念だが w
Python 関数ポインタ
辺りでググる程度の知恵もないのが残念だが w
943デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 10:50:54.11ID:LYlgQVUQ0 >>937,940
俺もそれを知らんかった。
そしてそのページでそれを確認し、K&Rみたら確かに「プロトタイプ」となっている。
だからどうやら俺の誤用だった、とした。
ただまあ、その意味での「前方宣言」なんて見たことないんだけどね。
俺もそれを知らんかった。
そしてそのページでそれを確認し、K&Rみたら確かに「プロトタイプ」となっている。
だからどうやら俺の誤用だった、とした。
ただまあ、その意味での「前方宣言」なんて見たことないんだけどね。
944デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 10:55:39.50ID:g3mBUieLd Pythonはファイルの最後に
if __name__ == 'main':
main()
ってやる関係で、結局実行は最後になるからdefの順番とかで困ることはまずないな
せいぜい関数内関数定義で先に書くか後で書くかくらいか?
一体どんなコード書いてりゃそんなどうでもいいところで引っかかるんだ
if __name__ == 'main':
main()
ってやる関係で、結局実行は最後になるからdefの順番とかで困ることはまずないな
せいぜい関数内関数定義で先に書くか後で書くかくらいか?
一体どんなコード書いてりゃそんなどうでもいいところで引っかかるんだ
945デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 10:57:04.61ID:LYlgQVUQ0 >>942
Pythonのdefは941で言う(A)なんだよ。
だから後方参照できない技術的理由は無い、という見解だ。
お前には通じないようだが。
それとは別に(B)の記述はPythonでも出来る。
というかこれが出来ない新しい言語なんて無い(ただしJavaを除く)
Pythonのdefは941で言う(A)なんだよ。
だから後方参照できない技術的理由は無い、という見解だ。
お前には通じないようだが。
それとは別に(B)の記述はPythonでも出来る。
というかこれが出来ない新しい言語なんて無い(ただしJavaを除く)
946デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 11:02:44.43ID:U2FIHXXv0947デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/17(月) 11:55:17.77ID:woO8V6Ze0 >>929
あーそう、「ほぼ使わない」のか
チームメイトが(いれば)お気の毒だね
正規表現の「後方参照」はここでの話と全然関係ないぞ
コンパイラにとって初見の識別子があとで宣言されることを
MASMでは前方参照と言っていたが、
Cでは「undeclared identifier: 宣言されていない識別子」
となっているだけだ(もち violation of the syntax)
ちなみにISO/IEC9899には全然違う意味の
「forward declaration: 前方参照」という用語がある
老害を小馬鹿にしたいようだが、脇が甘すぎだぜおまえ
あーそう、「ほぼ使わない」のか
チームメイトが(いれば)お気の毒だね
正規表現の「後方参照」はここでの話と全然関係ないぞ
コンパイラにとって初見の識別子があとで宣言されることを
MASMでは前方参照と言っていたが、
Cでは「undeclared identifier: 宣言されていない識別子」
となっているだけだ(もち violation of the syntax)
ちなみにISO/IEC9899には全然違う意味の
「forward declaration: 前方参照」という用語がある
老害を小馬鹿にしたいようだが、脇が甘すぎだぜおまえ
948デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 12:33:21.67ID:LYlgQVUQ0 >>947
脇が甘いもなんも、お前も全員が妥当だと思う用語を持って来れないだろ。
だったらお前も俺と同レベルなんだが。
913の時点で「『宣言されていない識別子』は禁止」では何を言っているのか通じないだろ。
(「前方宣言必須」は厳密には間違っているが、C使いには意図は100%通じてるだろ)
というかお前は老害ではなく若いのか?その突っかかり方はガキっぽい。
2chは言葉の定義にやたらこだわる奴が多いが、それはただのクソガキで、
仕事してりゃ分かるはずだが、実は社内方言ってのはものすごく多くて、
社外だと全く通用しないことすら自覚できてない場合が殆どだ。
だからすれ違いを感じたら>>932のように確認するのが常で、
俺はそれを受けて>>934と応じた。
ここら辺は仕事をしたことがあればよく見かける光景ではあるはず。
もちろん方言ではなく共通語を使う努力をすべきなのは言うまでもないが、
問題は方言を使っている奴は方言だと認識してないことなんだよ。
だから俺が方言を使っていれば、お前が正しい共通語を示せばいいだけの話であって、
今現在は(需要が既に無いから)共通語自体が存在しない状態だろ。
それをいちいち勝った負けたされても知らんがな。
で、まあ、話を戻すと、
(俺はPython使いではないから間違っているかもしれんが)
俺の理解では、Pythonは「プロトタイプ宣言が出来ないC」だ。
この理解が正しければ、糞だということで割と賛同を得られると思うが。
>>944は糞を量産していることに気づいてないだけだ。
ただそれとは別に、プロトタイプ宣言は無くても通常は構築可能で、
Cはそれが作法になってるだろ。
例えばファイルの先頭でファイル内全関数をプロトタイプ宣言してるソースなんて見たことないだろ。
(コーディングルールとしてこれをやっている所があってもおかしくないが、誰か知ってるか?)
ただ、Cはこの手間をかければ順序は自由にはなるが、Pythonはそれすら認めてないだろ。
この辺、Pythonは無駄に教育的で実践的ではないんだよ。
脇が甘いもなんも、お前も全員が妥当だと思う用語を持って来れないだろ。
だったらお前も俺と同レベルなんだが。
913の時点で「『宣言されていない識別子』は禁止」では何を言っているのか通じないだろ。
(「前方宣言必須」は厳密には間違っているが、C使いには意図は100%通じてるだろ)
というかお前は老害ではなく若いのか?その突っかかり方はガキっぽい。
2chは言葉の定義にやたらこだわる奴が多いが、それはただのクソガキで、
仕事してりゃ分かるはずだが、実は社内方言ってのはものすごく多くて、
社外だと全く通用しないことすら自覚できてない場合が殆どだ。
だからすれ違いを感じたら>>932のように確認するのが常で、
俺はそれを受けて>>934と応じた。
ここら辺は仕事をしたことがあればよく見かける光景ではあるはず。
もちろん方言ではなく共通語を使う努力をすべきなのは言うまでもないが、
問題は方言を使っている奴は方言だと認識してないことなんだよ。
だから俺が方言を使っていれば、お前が正しい共通語を示せばいいだけの話であって、
今現在は(需要が既に無いから)共通語自体が存在しない状態だろ。
それをいちいち勝った負けたされても知らんがな。
で、まあ、話を戻すと、
(俺はPython使いではないから間違っているかもしれんが)
俺の理解では、Pythonは「プロトタイプ宣言が出来ないC」だ。
この理解が正しければ、糞だということで割と賛同を得られると思うが。
>>944は糞を量産していることに気づいてないだけだ。
ただそれとは別に、プロトタイプ宣言は無くても通常は構築可能で、
Cはそれが作法になってるだろ。
例えばファイルの先頭でファイル内全関数をプロトタイプ宣言してるソースなんて見たことないだろ。
(コーディングルールとしてこれをやっている所があってもおかしくないが、誰か知ってるか?)
ただ、Cはこの手間をかければ順序は自由にはなるが、Pythonはそれすら認めてないだろ。
この辺、Pythonは無駄に教育的で実践的ではないんだよ。
949デフォルトの名無しさん (ワッチョイ a76f-xIn+)
2017/07/17(月) 12:54:14.08ID:HedtDN7o0 そうそう普通PL/Mだよね
950デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 13:28:45.97ID:g3mBUieLd 俺が糞を量産しているというのは穏やかではないな
if __name__ == '__main__'が糞といいたいのか?
ちょっとPythonスレで議論しようよ
if __name__ == '__main__'が糞といいたいのか?
ちょっとPythonスレで議論しようよ
951デフォルトの名無しさん (ワッチョイ f649-I67b)
2017/07/17(月) 13:37:29.75ID:g+93Yjlh0 夏だな
952デフォルトの名無しさん (オイコラミネオ MMb6-9jcw)
2017/07/17(月) 14:40:04.91ID:rKRQ/JsKM forkで子プロセスから、子プロセスを終了させたあとに親プロセスを終了させる方法無いですかね?
親プロセスはwhile(1)で回していて、子プロセスで入力を受け取るのですが、ある入力が来たときだけ、プログラムを終了(子プロセス親プロセス両方共終了)させたいです
親プロセスはwhile(1)で回していて、子プロセスで入力を受け取るのですが、ある入力が来たときだけ、プログラムを終了(子プロセス親プロセス両方共終了)させたいです
953デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 14:45:33.81ID:+Y9zLnEF0 親プロセスでwaitpidして子プロセス終了してたら自分も終了すれば良いじゃん
954デフォルトの名無しさん (オイコラミネオ MMb6-9jcw)
2017/07/17(月) 14:54:49.57ID:Ns2d2+pxM955デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 14:58:31.67ID:+Y9zLnEF0 終了ステータス変えるとか、共有メモリで適当なフラグもっとくとか、事前に適当なシグナル送るとか、いくらでもやりようあるだろ
956デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 15:09:00.52ID:LYlgQVUQ0 >>950
行かんよ。俺はPythonの文法もろくに知らないし、使う気もないし。
ただ、俺の理解
> Pythonは「プロトタイプ宣言が出来ないC」だ。
が間違っているのなら、指摘してくれよ。
これが間違いでないのなら、このスレの過半数は糞認定すると思うぞ。
上記が正しいとして、君が糞を量産していることを自覚できていないのは、
C専読者と同じで、Cスタイルで「上位から」書かれているコードを見たことがないからだ。
というか俺もつい先日までそうだったんだが。
とりあえず簡単に確認する方法として、循環参照がある。
例えばCなら、以下になる。
viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}
後方参照できるJavaScriptなら、これはベタで書いてそのまま動作する。
Cだとプロトタイプ宣言が必要だが、実体は上記の通りで動作する。
Pythonは余分な方法を使わないとこれが出来ないんだろ?
これとは別に、そもそも循環参照コードなんて書くなというのはあって、
これを教条的に強制しているのがPythonだろ。
下位からの記述を強制されている場合に、上位から読みたければファイル末尾から読め、
でしかないというのも事実だから、そんなに致命的でもないんだが。
行かんよ。俺はPythonの文法もろくに知らないし、使う気もないし。
ただ、俺の理解
> Pythonは「プロトタイプ宣言が出来ないC」だ。
が間違っているのなら、指摘してくれよ。
これが間違いでないのなら、このスレの過半数は糞認定すると思うぞ。
上記が正しいとして、君が糞を量産していることを自覚できていないのは、
C専読者と同じで、Cスタイルで「上位から」書かれているコードを見たことがないからだ。
というか俺もつい先日までそうだったんだが。
とりあえず簡単に確認する方法として、循環参照がある。
例えばCなら、以下になる。
viod say_hello(count){
if (--count<0) return;
printf("hello");
say_world(count);
}
void say_world(count){
printf(" world!\n");
say_hello(count);
}
後方参照できるJavaScriptなら、これはベタで書いてそのまま動作する。
Cだとプロトタイプ宣言が必要だが、実体は上記の通りで動作する。
Pythonは余分な方法を使わないとこれが出来ないんだろ?
これとは別に、そもそも循環参照コードなんて書くなというのはあって、
これを教条的に強制しているのがPythonだろ。
下位からの記述を強制されている場合に、上位から読みたければファイル末尾から読め、
でしかないというのも事実だから、そんなに致命的でもないんだが。
957デフォルトの名無しさん (ドコグロ MM36-OTuW)
2017/07/17(月) 15:25:01.26ID:iPE66y3WM958デフォルトの名無しさん (オイコラミネオ MMb6-9jcw)
2017/07/17(月) 15:29:13.95ID:I/V/8ZBUM959デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 15:32:56.88ID:LYlgQVUQ0 すまん、>>956は間違いのようで、Pythonでも関数間の参照自体は出来るらしい。
> 再帰関数の前方参照
> http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
だから関数定義を全部先にしてしまえばいいということになる。
それが見易いとは思わないが。
しかしCは関数内関数が無いのでそれ以前だ。
GCC拡張を利用するなら、
関数内関数を全部「頭」に配置しないといけないのがPython、
どこに配置しても自由に呼び出せるのがJavaScriptということになる。
GCCの場合はCと同様プロトタイプ宣言とかも関数内に使えて配置も同様、ということなのかな?
>>957
ああ悪い、こっちも確認した。上記の通り。
というかPythonの話は止めよう。俺はそっちには興味ない。
話を戻すと、俺が思うCに足りないのは「階層」と「後方参照」だ。
これら2つがあれば、今現在細切れになっているファイルを1つに束ね、
一番読みやすい順にソートできる。
お前らがピンと来ないのは、多分俺と同じで、見たことがないからだ。
後方参照できる言語でCスタイルで書かれた大規模コードを一度見れば分かると思うよ。
> 再帰関数の前方参照
> http://www.isc.meiji.ac.jp/~mizutani/python/recursive_call.html
だから関数定義を全部先にしてしまえばいいということになる。
それが見易いとは思わないが。
しかしCは関数内関数が無いのでそれ以前だ。
GCC拡張を利用するなら、
関数内関数を全部「頭」に配置しないといけないのがPython、
どこに配置しても自由に呼び出せるのがJavaScriptということになる。
GCCの場合はCと同様プロトタイプ宣言とかも関数内に使えて配置も同様、ということなのかな?
>>957
ああ悪い、こっちも確認した。上記の通り。
というかPythonの話は止めよう。俺はそっちには興味ない。
話を戻すと、俺が思うCに足りないのは「階層」と「後方参照」だ。
これら2つがあれば、今現在細切れになっているファイルを1つに束ね、
一番読みやすい順にソートできる。
お前らがピンと来ないのは、多分俺と同じで、見たことがないからだ。
後方参照できる言語でCスタイルで書かれた大規模コードを一度見れば分かると思うよ。
960デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 16:45:34.15ID:g3mBUieLd 俺ってばこんなこんなに何も分かってない奴に「糞コード量産してる」とか言われてたん?
失礼な奴だな本当に
失礼な奴だな本当に
961デフォルトの名無しさん (ワッチョイ 7e32-vfgv)
2017/07/17(月) 16:53:25.99ID:OvXGqJkd0 ctagsとか、タグジャンプつかおうな?
上から下にならべてあるから読みやすいですとか、眺めてるだけですと、宣言してるようなものだ。
トレースする気がないべ?
上から下にならべてあるから読みやすいですとか、眺めてるだけですと、宣言してるようなものだ。
トレースする気がないべ?
962デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 17:26:09.82ID:LYlgQVUQ0 >>960
いや事実だぞ。
君は都合が悪い部分には回答しないようだが、プロトタイプ宣言が無いのは事実だろ。
それは下位関数も含めて全部上側で記述することを強制する。
C言語でプロトタイプ宣言が無い場合に似ている。
ただし関数内から別関数への参照は「動的」に行われるのでCより制約は緩くなるが、
本質的にはあまり変わらない。
そもそも、下位関数なんて名前を見たら実装なんて見ずとも結果が分かるべきものだし、
それがオブジェクト指向の思想だろ。下位関数は読む必要なんてないんだよ。
俺は「『君が無能だから』糞コードを量産している」と言っているわけではない。
Pythonの仕様が糞だから、「Pythonでは糞コードしか書けない」と俺は言っている。
そこを君は勘違いしている。
それはそうと、Pythonのスレ試しに見てみたが、相当酷いな。あれじゃマ板だよ。
>>961
IDEに使って本格的に読めばその辺も含めて改善するのだろうが、
設計者が分かりやすいようにソート済みなのと、
コンパイラに都合がいいようにソート済みなのでは、全然違うんだよ。
そしてCは「ファイル」を階層として使っているのだが、これがもう古い。
タグとか使って一発で飛べるのなら余計に1つのファイルにまとめてあったほうが好都合だろ。
(もっともタグ使えば複数ファイルでも飛べるのだとは思うが)
ただ、俺が求めている階層は関数内関数で十分で、
GCCで採用されているのでいいんだが、アレは何で標準にならないんだ?
いや事実だぞ。
君は都合が悪い部分には回答しないようだが、プロトタイプ宣言が無いのは事実だろ。
それは下位関数も含めて全部上側で記述することを強制する。
C言語でプロトタイプ宣言が無い場合に似ている。
ただし関数内から別関数への参照は「動的」に行われるのでCより制約は緩くなるが、
本質的にはあまり変わらない。
そもそも、下位関数なんて名前を見たら実装なんて見ずとも結果が分かるべきものだし、
それがオブジェクト指向の思想だろ。下位関数は読む必要なんてないんだよ。
俺は「『君が無能だから』糞コードを量産している」と言っているわけではない。
Pythonの仕様が糞だから、「Pythonでは糞コードしか書けない」と俺は言っている。
そこを君は勘違いしている。
それはそうと、Pythonのスレ試しに見てみたが、相当酷いな。あれじゃマ板だよ。
>>961
IDEに使って本格的に読めばその辺も含めて改善するのだろうが、
設計者が分かりやすいようにソート済みなのと、
コンパイラに都合がいいようにソート済みなのでは、全然違うんだよ。
そしてCは「ファイル」を階層として使っているのだが、これがもう古い。
タグとか使って一発で飛べるのなら余計に1つのファイルにまとめてあったほうが好都合だろ。
(もっともタグ使えば複数ファイルでも飛べるのだとは思うが)
ただ、俺が求めている階層は関数内関数で十分で、
GCCで採用されているのでいいんだが、アレは何で標準にならないんだ?
963デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 17:45:56.64ID:+Y9zLnEF0 トランポリンコード必須なGCCの関数内関数が標準に入るわけないだろ
964デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 17:52:48.13ID:6JtF0HSC0 >>952
親プロセス while (1) で回してるって、その while (1) の中でやってる処理はなんだ?
wait() してないのか? wait() してるならそれで子プロセス側の exit() のステータス
受け取れるからそれで親側で判別すればいいんじゃない?
てか、これCはCでもUNIX系OS固有の話だよな。ここだとスレチにならんか?
親プロセス while (1) で回してるって、その while (1) の中でやってる処理はなんだ?
wait() してないのか? wait() してるならそれで子プロセス側の exit() のステータス
受け取れるからそれで親側で判別すればいいんじゃない?
てか、これCはCでもUNIX系OS固有の話だよな。ここだとスレチにならんか?
965デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 17:54:48.33ID:6JtF0HSC0 あ、もう解決済みだったか。すまん。
966デフォルトの名無しさん (ワッチョイ c832-MRQN)
2017/07/17(月) 17:54:54.48ID:+Y9zLnEF0 ならんと思うし、解決済みだぞ
967デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 18:06:17.25ID:6JtF0HSC0 >>959
まあそれで見やすくなるだろうから、そういうCを拡張した新しい言語作れば良い。
しかし、問題はC(あるいはそこからちょっとしか拡張されていないような言語)を
人間が直接使う機会はおそらく減り続けることにある。今でもほとんどOSや
デバイスドライバを記述するアセンブラ代わり
まあそれで見やすくなるだろうから、そういうCを拡張した新しい言語作れば良い。
しかし、問題はC(あるいはそこからちょっとしか拡張されていないような言語)を
人間が直接使う機会はおそらく減り続けることにある。今でもほとんどOSや
デバイスドライバを記述するアセンブラ代わり
968デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 18:07:19.84ID:g3mBUieLd969デフォルトの名無しさん (ワッチョイ df23-S4qQ)
2017/07/17(月) 18:07:38.79ID:6JtF0HSC0 あ、ごめん。途中で送信しちゃった。
つづき。
↓
に使われてるしね。
つづき。
↓
に使われてるしね。
970デフォルトの名無しさん (ワッチョイ 386f-bO6O)
2017/07/17(月) 18:40:56.88ID:IbKZMmLs0 関数内関数って要するに高階関数のことだろ
関数型言語または関数型のマルチパラダイムの言語でないと無理だろ
関数型言語または関数型のマルチパラダイムの言語でないと無理だろ
971デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 18:46:26.39ID:PKmAGp8M0 Objective-Cで全部可能ではある
C言語でもclangならblocks拡張(関数オブジェクト・クロージャ)が使える
関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう
C言語でもclangならblocks拡張(関数オブジェクト・クロージャ)が使える
関数内関数は単純に制御構造だと捉えれば、C言語でもgoto文で可能でしょう
972デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 18:54:16.64ID:g3mBUieLd Blocks拡張は有能なのは分かってるけど、Clang依存コードになるからちょいとハードル高いよなあ
973デフォルトの名無しさん (ワッチョイ 8a1c-UU3S)
2017/07/17(月) 18:59:20.24ID:woO8V6Ze0 >>948
いやコンパイラにとって初見の識別子があとで宣言される
という形になっているコードについて話しているのは
みんなわかってるのに、頓珍漢な言葉遊びに持ち込もうと
している邪魔な奴がおまえだ
> Cはそれが作法になってるだろ
はあ? 聞いたこともねえぜ、寝言は寝てぬかせ
横着しねえでちゃんとプロトタイプ宣言すんだよ
正直たまにサボることがあるのを恥もせずに
それがスタンダードとか居直るおまえの態度が鼻持ちならん
いやコンパイラにとって初見の識別子があとで宣言される
という形になっているコードについて話しているのは
みんなわかってるのに、頓珍漢な言葉遊びに持ち込もうと
している邪魔な奴がおまえだ
> Cはそれが作法になってるだろ
はあ? 聞いたこともねえぜ、寝言は寝てぬかせ
横着しねえでちゃんとプロトタイプ宣言すんだよ
正直たまにサボることがあるのを恥もせずに
それがスタンダードとか居直るおまえの態度が鼻持ちならん
974デフォルトの名無しさん (ワッチョイ 6e9a-n9U6)
2017/07/17(月) 19:03:14.17ID:30YqlFLH0 ヘッダにはプロトタイプ宣言を書くだろうに
なんでプロトタイプ宣言をなかったことにしたがるのだろうか?
なんでプロトタイプ宣言をなかったことにしたがるのだろうか?
975デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:03:27.54ID:PKmAGp8M0976デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 19:17:54.83ID:g3mBUieLd977デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:25:58.36ID:PKmAGp8M0 >>976
いやコールバック関数のポインタ渡しで代替だからw 別に関数書く必要はあるよ
blocksみたいに、同じスコープにコールバックの処理も書けちゃうっていう便利さは無い
環境のキャプチャもしたければ、値のコピーをヒープに確保してコールバック側でfreeとか、
工夫すればできるでしょう
いやコールバック関数のポインタ渡しで代替だからw 別に関数書く必要はあるよ
blocksみたいに、同じスコープにコールバックの処理も書けちゃうっていう便利さは無い
環境のキャプチャもしたければ、値のコピーをヒープに確保してコールバック側でfreeとか、
工夫すればできるでしょう
978デフォルトの名無しさん (スププ Sd94-UFoF)
2017/07/17(月) 19:43:36.29ID:g3mBUieLd うーむわかりた。やっぱ別に書いた関数を呼ぶのがせいぜいよなあ
せめて関数オブジェクトがあればなあとたまに思うわ
せめて関数オブジェクトがあればなあとたまに思うわ
979デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 19:45:22.30ID:U2FIHXXv0980デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 19:47:31.91ID:U2FIHXXv0981デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 19:59:04.53ID:PKmAGp8M0982デフォルトの名無しさん (ワッチョイ 386f-/Dy+)
2017/07/17(月) 20:24:44.55ID:IbKZMmLs0 関数の内部で関数を定義するようなイメージじゃないの?
C言語では不可能だけど
void functionA(void) {
…
void functionB(void) {
…
void functionC(void) {
…
}
}
}
C言語では不可能だけど
void functionA(void) {
…
void functionB(void) {
…
void functionC(void) {
…
}
}
}
983デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 20:31:06.71ID:U2FIHXXv0984デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:01:30.74ID:LYlgQVUQ0 >>963
> トランポリンコード
なんだそりゃ?と思ったらこれか。
http://d.hatena.ne.jp/yupo5656/20040602/p1
なるほどGCCのは単なる階層ではなく、プチグローバル付きか。
この仕様なら上位階層(ファイル)を記述変更無しで取り込めるが、
これは確かに標準化には微妙だな。俺はGCCの仕様を詳しく知らんかった。すまんね。
しかしこれ、C++のメンバ関数ポインタみたいに、
普通の関数ポインタと相互運用することは諦めてしまっても良かった気もするが、
それだとレガシーとは相性が悪い。微妙なところだね。
> トランポリンコード
なんだそりゃ?と思ったらこれか。
http://d.hatena.ne.jp/yupo5656/20040602/p1
なるほどGCCのは単なる階層ではなく、プチグローバル付きか。
この仕様なら上位階層(ファイル)を記述変更無しで取り込めるが、
これは確かに標準化には微妙だな。俺はGCCの仕様を詳しく知らんかった。すまんね。
しかしこれ、C++のメンバ関数ポインタみたいに、
普通の関数ポインタと相互運用することは諦めてしまっても良かった気もするが、
それだとレガシーとは相性が悪い。微妙なところだね。
985デフォルトの名無しさん (ワッチョイ 4ed7-H2gN)
2017/07/17(月) 21:03:30.21ID:PKmAGp8M0 >>983
俺が言ってるのは、Cでは同じようには書けないが同じ処理はできるってことだよ
俺が言ってるのは、Cでは同じようには書けないが同じ処理はできるってことだよ
986デフォルトの名無しさん (ワッチョイ ce6f-9g51)
2017/07/17(月) 21:07:34.37ID:J4JGo3XO0987デフォルトの名無しさん (ワッチョイ d091-z+eH)
2017/07/17(月) 21:16:05.25ID:dzhRVtEN0 おっつおっつ
988デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:20:55.01ID:LYlgQVUQ0 >>967,969
チョイ拡張言語ってのはエコシステムが付いてこず勝手に死ぬ。
Dもだし、Objective-CはAppleに拾ってもらえたけど、もう確実に死ぬ運命だよね。
(あれらはチョイ拡張でもないが)
チョイ拡張だとわざわざCから移行する意味が無いんだよ。
理想的にはやっぱ標準に入ってくれないと辛いわ。
Cが死に行く、って指摘については、俺もそう思っていたのだが、
何度も言っているが最近Cスタイルの他言語コードを見てちょっと考えを改めつつある。
OOPのコードは結構真面目に追いかけないと辛くて、読みやすくはない。
これはCも同様だと思っていたのだが、実はCの読みにくさは「階層」と「後方参照」がないだけで、
(つまりファイルがバラバラで、しかもグダグダな順に書かれているからであって《=プチ難読化済》)
構造的に問題があるわけではなく、それなりに読みやすいことに気づいた。
だからこれらがある言語(Python以外の新しい言語全部)でCスタイル(手続き型)で書かれたコードは
実はかなり読みやすいのだと思う。
(問題は、そういうのにあまり遭遇しないことだが)
だからC自体は廃れるかもしれないけど、Cスタイルは多分廃れない。
そして今のところ手続き型万歳的な言語はCだけだ。
となると、Cに足りない上記、「階層」「後方参照」が入ればCってもう一回来るかも?とも思う。
(つか、namespaceすら入れないって何よ?とは思うよマジで)
>>986
乙
チョイ拡張言語ってのはエコシステムが付いてこず勝手に死ぬ。
Dもだし、Objective-CはAppleに拾ってもらえたけど、もう確実に死ぬ運命だよね。
(あれらはチョイ拡張でもないが)
チョイ拡張だとわざわざCから移行する意味が無いんだよ。
理想的にはやっぱ標準に入ってくれないと辛いわ。
Cが死に行く、って指摘については、俺もそう思っていたのだが、
何度も言っているが最近Cスタイルの他言語コードを見てちょっと考えを改めつつある。
OOPのコードは結構真面目に追いかけないと辛くて、読みやすくはない。
これはCも同様だと思っていたのだが、実はCの読みにくさは「階層」と「後方参照」がないだけで、
(つまりファイルがバラバラで、しかもグダグダな順に書かれているからであって《=プチ難読化済》)
構造的に問題があるわけではなく、それなりに読みやすいことに気づいた。
だからこれらがある言語(Python以外の新しい言語全部)でCスタイル(手続き型)で書かれたコードは
実はかなり読みやすいのだと思う。
(問題は、そういうのにあまり遭遇しないことだが)
だからC自体は廃れるかもしれないけど、Cスタイルは多分廃れない。
そして今のところ手続き型万歳的な言語はCだけだ。
となると、Cに足りない上記、「階層」「後方参照」が入ればCってもう一回来るかも?とも思う。
(つか、namespaceすら入れないって何よ?とは思うよマジで)
>>986
乙
989デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/17(月) 21:22:41.43ID:n17oqQVv0 Pythonがプロトタイプ宣言の必要のないC言語と言ってるバカがいるのはこのスレですか?
990デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:30:16.49ID:LYlgQVUQ0 >>973
全部書くのがお前のジャスティスならそうすりゃいいし、
実際そっちが主流かもしれん。
しかしヘッダファイルを用意するなんて完全に二度手間だし、
コンパイラが自動的にやれよマジで、と思ったことは無いのか?
コンパイル時間が気になるのなら、ヘッダファイルを用意しろ、
面倒ならなしでよし、その場合はコンパイラが勝手に探してくる、
その分コンパイル時間はかかるが手間が省ける、って仕様で何も問題ないだろ。
てか他言語は全部そうだし。(Python除く)
俺はあの仕様がいまだに残っており、
また、お前みたいに疑問を持ってない奴がいることがよく分からん。
全部書くのがお前のジャスティスならそうすりゃいいし、
実際そっちが主流かもしれん。
しかしヘッダファイルを用意するなんて完全に二度手間だし、
コンパイラが自動的にやれよマジで、と思ったことは無いのか?
コンパイル時間が気になるのなら、ヘッダファイルを用意しろ、
面倒ならなしでよし、その場合はコンパイラが勝手に探してくる、
その分コンパイル時間はかかるが手間が省ける、って仕様で何も問題ないだろ。
てか他言語は全部そうだし。(Python除く)
俺はあの仕様がいまだに残っており、
また、お前みたいに疑問を持ってない奴がいることがよく分からん。
991デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/17(月) 21:39:14.19ID:LYlgQVUQ0 >>989
× Pythonがプロトタイプ宣言の必要のない
○ Pythonはプロトタイプ宣言が出来ない
○ JavaScriptはプロトタイプ宣言が必要ない
何度も言っているがこれだけでPythonは糞だと断定できる。
一番わかりやすい順に記述出来ない時点で糞。
ただしPythonってのは元々そういう言語。ユーザの自由を認めていない。
で、俺はマジでPythonに関わるつもり無いからもう止めて。
Python信者が発狂しているし。俺自身Python知らんし。
× Pythonがプロトタイプ宣言の必要のない
○ Pythonはプロトタイプ宣言が出来ない
○ JavaScriptはプロトタイプ宣言が必要ない
何度も言っているがこれだけでPythonは糞だと断定できる。
一番わかりやすい順に記述出来ない時点で糞。
ただしPythonってのは元々そういう言語。ユーザの自由を認めていない。
で、俺はマジでPythonに関わるつもり無いからもう止めて。
Python信者が発狂しているし。俺自身Python知らんし。
992デフォルトの名無しさん (スプッッ Sd70-Cvl0)
2017/07/17(月) 21:41:38.75ID:nYhUL1Kkd 最強はアセンブリ言語
993デフォルトの名無しさん (ワッチョイ ce7f-z+eH)
2017/07/17(月) 21:43:34.50ID:iqtGzeji0 一元管理と二重チェック、共存はできないが一概にどちらが優れていると決めつけられるものでもないなぁ。
994デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:45:43.44ID:U2FIHXXv0995デフォルトの名無しさん (アウアウカー Sa0a-S4qQ)
2017/07/17(月) 21:46:23.02ID:/QULOYxMa >>990
いや、何も無理してC使う必要はないんだよ。なんだったら新言語作ればいい。
bison, flex (yacc, lex) があるわけだし。
で、比較的楽に言語を作る方法は、C言語へのコンバータにしてしまうことだ。
そうするとかなり多くの環境で動くものがいきなりできる。
C++も最初の頃はそうだった。
いや、何も無理してC使う必要はないんだよ。なんだったら新言語作ればいい。
bison, flex (yacc, lex) があるわけだし。
で、比較的楽に言語を作る方法は、C言語へのコンバータにしてしまうことだ。
そうするとかなり多くの環境で動くものがいきなりできる。
C++も最初の頃はそうだった。
996デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:49:21.75ID:U2FIHXXv0 >>991
知らないのに糞とかアホすぎる w
知らないのに糞とかアホすぎる w
997デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:49:44.33ID:U2FIHXXv0 うめ
998デフォルトの名無しさん (ワッチョイ aa11-OTuW)
2017/07/17(月) 21:50:16.71ID:U2FIHXXv0 うめ
999デフォルトの名無しさん (ドコグロ MM46-OTuW)
2017/07/17(月) 21:51:40.93ID:qENq84dkM >>991
バカは何度指摘してもバカのままなんだな
バカは何度指摘してもバカのままなんだな
1000デフォルトの名無しさん (ワッチョイ f2ea-S4qQ)
2017/07/17(月) 21:51:49.33ID:n17oqQVv0 >>990
1ソースコードファイル1オブジェクトファイルだからそういう仕様なんだよ
1ソースコードファイル1オブジェクトファイルだからそういう仕様なんだよ
10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 66日 23時間 31分 46秒
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 66日 23時間 31分 46秒
10021002
Over 1000Thread 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【悲報】青森県、今日だけで60cm雪が積もってとうとう100cm越えてしまうwwwww
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
