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://mevius.2ch.net/test/read.cgi/tech/1500293207/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh5048デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/17(木) 10:55:11.53ID:NamoDwZf0 >>47
最近のコンパイラはデフォでトライグラフを抑制してくれてるようだけど
古いコンパイラは、そんな気がきいてないから
警告文 "warning??!" ってやって実際の出力が warning| で なんじゃこりゃ?と
最近のコンパイラはデフォでトライグラフを抑制してくれてるようだけど
古いコンパイラは、そんな気がきいてないから
警告文 "warning??!" ってやって実際の出力が warning| で なんじゃこりゃ?と
49デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/17(木) 10:59:46.51ID:NamoDwZf0 それでも ??/ → \ で
次の文字をエスケープして大事故にというのは無かったかな
次の文字をエスケープして大事故にというのは無かったかな
50デフォルトの名無しさん (ドコグロ MMb3-x4Vn)
2017/08/17(木) 11:00:52.21ID:OslnP8rdM51デフォルトの名無しさん (ワッチョイ 6139-uL9b)
2017/08/17(木) 12:36:35.61ID:kQ6hfaFr0 CとC++は馬鹿には使えない
惨事が起きるから
使わせてはいけないと聞いた
惨事が起きるから
使わせてはいけないと聞いた
52デフォルトの名無しさん (ワッチョイ 936f-pVc9)
2017/08/17(木) 13:57:01.69ID:ylZytAyh0 いくつかのコンパイラはトライグラフがデフォルトで無効になっていたと思う
53デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/17(木) 16:57:48.81ID:ZvDESEOS0 clとclangとgccはデフォルトで無効だし、今じゃ有効な環境のほうが珍しいんじゃないの
54デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/17(木) 21:30:33.60ID:2RZZpZadE char s[3] = "abc";
printf("%s %lu", s, strlen(s));
これの出力がabc 3にならず
abc 9abc 9とか
abcea 9abcea 9みたいに毎回不定で文字列が出力されるんですけど何でですか?
printf("%s %lu", s, strlen(s));
これの出力がabc 3にならず
abc 9abc 9とか
abcea 9abcea 9みたいに毎回不定で文字列が出力されるんですけど何でですか?
56片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 21:39:34.19ID:XnqHf7Mqd s[4]か、サイズ未指定のs[]にする。
\nを追加する。
\nを追加する。
57片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 21:40:55.02ID:XnqHf7Mqd strlenの返却値はsize_tだから、%luは間違い。
58デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/17(木) 23:15:30.23ID:zzoRHhsR0 >>57
正解は?
正解は?
59片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/17(木) 23:27:33.59ID:XnqHf7Mqd60デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/17(木) 23:35:38.09ID:zzoRHhsR0 組み込みのショボいライブラリじゃ使えなかったりするから
unsigned intにキャストして%u
でいいや
unsigned intにキャストして%u
でいいや
61デフォルトの名無しさん (ブーイモ MMc5-gUFl)
2017/08/18(金) 03:59:52.12ID:URLOh4DLM キャスト毛嫌いしてたんだけど、size_t や int*_t シリーズを printf 書式で使う時のベストプラクティスだと気付いてしまったよ。
62片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 04:18:35.01ID:sjvn+N2bd サイズの変わる型キャストは、(通常無視できる程度の)少しだけコストがかかることに言及しておこう。
63片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 04:20:02.39ID:sjvn+N2bd わずかに時間と計算量がかかるという意味のコストね。
64デフォルトの名無しさん (ワッチョイ 5389-SBNh)
2017/08/18(金) 07:04:19.91ID:R7MrN97k0 printf使ってるときなら、無視できるレベルだな
65デフォルトの名無しさん (フリッテル MM6b-MHwE)
2017/08/18(金) 07:10:44.43ID:RGoxPD09M 大抵の場合、暗黙でintに変換されるので%dで問題ない
66デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 07:50:44.76ID:cQGhZEXD0 >>63
64ビットで渡すより32ビットで渡す方が普通は速い
64ビットで渡すより32ビットで渡す方が普通は速い
67デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 07:51:44.71ID:cQGhZEXD0 >>65
intより大きいサイズはintに変換されない
intより大きいサイズはintに変換されない
68デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 09:48:31.67ID:+zi/zXZ3069デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 10:03:06.56ID:+zi/zXZ30 脇道に逸れるが整数のサイズってどいつもこいつもイマイチだね
char 8
short 16
int 32
long 64
long long 128
と、せっかく5階級あるのを無駄なく使えるようになってない
char 8
short 16
int 32
long 64
long long 128
と、せっかく5階級あるのを無駄なく使えるようになってない
70デフォルトの名無しさん (ワッチョイ 5100-kTqj)
2017/08/18(金) 11:07:14.63ID:cQGhZEXD0 どこの環境だよ
71デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 11:55:29.20ID:+zi/zXZ30 いや、そういう環境があったらなあと
72デフォルトの名無しさん (スプッッ Sda3-VxEm)
2017/08/18(金) 12:41:24.28ID:8ZqVNhGud そんなに細かく分ける意味あんのかね。
64bitだけでいいだろ。
64bitだけでいいだろ。
73デフォルトの名無しさん (ワッチョイ 4b6c-oL0b)
2017/08/18(金) 12:46:10.63ID:K+PXWISB0 Makefileの書き方なんだけど
makeが実行されているときに 今何を実行してるか表示されるけど
「なんでこれが実行されているんか」の理由も表示したい
依存関係の hoge: fuga を表示したい
.c.o:
@echo $@:$^
$(CC) $(CFLAGS) -c $<
みたいに書いたりしてんだけど、全部に書くのもダサい気がするし
良い方法はないでしょうか
makeが実行されているときに 今何を実行してるか表示されるけど
「なんでこれが実行されているんか」の理由も表示したい
依存関係の hoge: fuga を表示したい
.c.o:
@echo $@:$^
$(CC) $(CFLAGS) -c $<
みたいに書いたりしてんだけど、全部に書くのもダサい気がするし
良い方法はないでしょうか
74デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 15:25:50.71ID:+zi/zXZ30 >>72
128が標準にあれば使い途いろいろあるぞ
128が標準にあれば使い途いろいろあるぞ
75デフォルトの名無しさん (ワッチョイ 81b6-Jcyw)
2017/08/18(金) 15:40:25.23ID:RRX5RBja076デフォルトの名無しさん (ワッチョイ 9311-x4Vn)
2017/08/18(金) 16:57:07.47ID:UodSk1FQ077デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/18(金) 18:57:47.45ID:aoGOUUu+0 C関係ないんだから、別スレでやれよ
78デフォルトの名無しさん (ワッチョイ 61b6-qPuT)
2017/08/18(金) 20:41:27.26ID:2qfgYUHL0 すみません初歩的なことですが・・
前置インクリメントa++
後置インクリメント++a
がありますが、a=a+1は後置になりますよね?
前置インクリメントa++
後置インクリメント++a
がありますが、a=a+1は後置になりますよね?
79デフォルトの名無しさん (ドコグロ MMa3-VxEm)
2017/08/18(金) 20:44:00.68ID:m74Y+4jlM b=a++ と b= a= a+1 は違う気がする。
80片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdb3-hsX1)
2017/08/18(金) 20:47:26.76ID:sjvn+N2bd どちらでもない。
81デフォルトの名無しさん (ワッチョイ c111-JJVS)
2017/08/18(金) 20:49:13.42ID:5LpMFucB0 加算と代入
82デフォルトの名無しさん (ワッチョイ 61b6-qPuT)
2017/08/18(金) 20:51:16.52ID:2qfgYUHL083デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/18(金) 23:11:42.85ID:+zi/zXZ30 違う! 前置だ
b = (a = a + 1);
b = (a = a + 1);
84デフォルトの名無しさん (ワッチョイ c111-JJVS)
2017/08/18(金) 23:21:22.94ID:5LpMFucB0 a[i++] = i; は悪魔召還だけど
インクリメント演算子なしのこれ
a[i =i+1] = i;
も鼻から悪魔になるのかな
インクリメント演算子なしのこれ
a[i =i+1] = i;
も鼻から悪魔になるのかな
85デフォルトの名無しさん (ワッチョイ db6f-2g+Y)
2017/08/18(金) 23:57:54.41ID:nSj4GkNd0 >>78
>前置インクリメントa++
>後置インクリメント++a
考え方が逆
変数を基準に考えるのではなく演算子を基準に考える
前置インクリメント++a : 演算子を’前’置した場合、変数(式)の評価’前’に演算子が適用される
後置インクリメントa++ : 演算子を’後’置した場合、変数(式)の評価’後’に演算子が適用される
>前置インクリメントa++
>後置インクリメント++a
考え方が逆
変数を基準に考えるのではなく演算子を基準に考える
前置インクリメント++a : 演算子を’前’置した場合、変数(式)の評価’前’に演算子が適用される
後置インクリメントa++ : 演算子を’後’置した場合、変数(式)の評価’後’に演算子が適用される
86デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/19(土) 00:03:09.07ID:0xgPi4RO087デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/19(土) 09:44:47.22ID:CpINIl4e0 i = i + 1;
の、iの変更と最後のiの評価の間の順序性は?
の、iの変更と最後のiの評価の間の順序性は?
88C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ (ラクッペ MMed-UZV0)
2017/08/19(土) 09:54:20.36ID:6ANTyB1VM >>87
i+1のiは変更前のiでしょ
i+1のiは変更前のiでしょ
89デフォルトの名無しさん (スプッッ Sdf3-l88/)
2017/08/19(土) 10:03:42.32ID:cD3Bg7W9d >>30
デバッグしないのか?
デバッグしないのか?
90デフォルトの名無しさん (ワッチョイ 931e-VxEm)
2017/08/19(土) 10:37:04.42ID:opyN89fo0 デバッガはデバッガで起動すればいいし、printf があるし。
91デフォルトの名無しさん (ワッチョイ f932-Jcyw)
2017/08/19(土) 11:26:43.49ID:0xgPi4RO0 >>87
6.5.16 Assignment operators
「The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands. The evaluations of the operands are unsequenced.」
左オペランドの変更は、左右オペランドの評価の後
6.5.16 Assignment operators
「The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands. The evaluations of the operands are unsequenced.」
左オペランドの変更は、左右オペランドの評価の後
92デフォルトの名無しさん (ワッチョイ 2baa-PF2c)
2017/08/19(土) 12:19:31.20ID:9KU7ntuJ093デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/19(土) 15:28:05.17ID:CpINIl4e094デフォルトの名無しさん (ワッチョイ 81b6-Jcyw)
2017/08/19(土) 23:53:05.68ID:HeBiuDVT0 >>92
バグが入りやすい書き方ってだけでバグるわけじゃない
バグが入りやすい書き方ってだけでバグるわけじゃない
95デフォルトの名無しさん (ワッチョイ 931e-VxEm)
2017/08/20(日) 00:16:58.16ID:856Qy56L0 a[i++]= b; は問題ないしな。
96デフォルトの名無しさん (ワッチョイ 6123-WxsM)
2017/08/20(日) 03:47:32.99ID:+c5k6kJk0 右辺の結果を出してから左辺の計算やってるようだな。
https://paiza.io/projects/G_durt7YVnR55npMvUcKwg
https://paiza.io/projects/G_durt7YVnR55npMvUcKwg
97デフォルトの名無しさん (ワッチョイ 936f-2g+Y)
2017/08/20(日) 06:41:37.88ID:6XW1JaY/098デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/20(日) 09:25:38.38ID:sGdhnhOm0 事実上どうなっているという話ではなく
理屈の上でどうなのかという話
ちゃんと断り書きがあったからめでたしだが
そうでなかったら大変だった
理屈の上でどうなのかという話
ちゃんと断り書きがあったからめでたしだが
そうでなかったら大変だった
99デフォルトの名無しさん (ラクッペ MMed-3Zg8)
2017/08/20(日) 09:58:54.27ID:SbUj3AhWM100デフォルトの名無しさん (ワッチョイ 096f-jLVh)
2017/08/22(火) 11:22:32.57ID:chgkyZKA0 defineした定数を文字列定数にいれるにはどうしたらいいの?
#define EOL 0x0d
const char version_message[] = "Version 1.0\x0d"
↑この文字列の改行コードに定数EOLを展開した値を入れたいです。
#define EOL 0x0d
const char version_message[] = "Version 1.0\x0d"
↑この文字列の改行コードに定数EOLを展開した値を入れたいです。
101デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 11:44:36.20ID:xXPB4eWM0102デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/22(火) 11:47:40.32ID:przmPyd7E typedef struct hoge {
int a;
int b;
} hoge;
hoge h = {1, 2};
構造体に含まれるメンバ名と値を全て出力する方法を教えてください
上の構造体なら
a,1
b,2
と出力したいです
int a;
int b;
} hoge;
hoge h = {1, 2};
構造体に含まれるメンバ名と値を全て出力する方法を教えてください
上の構造体なら
a,1
b,2
と出力したいです
103デフォルトの名無しさん (ワッチョイ 596f-MAnB)
2017/08/22(火) 11:59:42.09ID:GCxyf0Da0104デフォルトの名無しさん (JP 0H5d-C/ZS)
2017/08/22(火) 12:08:53.86ID:R9ds2cCvH105デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 12:11:18.37ID:xXPB4eWM0106デフォルトの名無しさん (ワッチョイ 596f-MAnB)
2017/08/22(火) 12:14:35.93ID:GCxyf0Da0 >>102
変数名はあくまで人間が扱いやすいように何らかの領域(一般的にメモリアドレス)に付けるあだ名であって
プログラム(コンピュータ)的にはメモリアドレスのほうが扱いやすいのであだ名は不要(アドレスのほうはプログラム的に出せる)
なのであだ名のほうが欲しいなら以下のように直書きするしかない
printf("%s,%d\n", "a", h.a);
変数名はあくまで人間が扱いやすいように何らかの領域(一般的にメモリアドレス)に付けるあだ名であって
プログラム(コンピュータ)的にはメモリアドレスのほうが扱いやすいのであだ名は不要(アドレスのほうはプログラム的に出せる)
なのであだ名のほうが欲しいなら以下のように直書きするしかない
printf("%s,%d\n", "a", h.a);
107デフォルトの名無しさん (エーイモ SEf3-Ufa9)
2017/08/22(火) 12:52:42.46ID:przmPyd7E108デフォルトの名無しさん (JP 0H5d-3KK3)
2017/08/22(火) 13:00:37.52ID:u9fcDp43H デバッグ目的ならデバッガで
109デフォルトの名無しさん (ワッチョイ 096f-jLVh)
2017/08/22(火) 13:20:20.96ID:chgkyZKA0 >>101,104、ありがとうございます、
PCとUSBシリアルで通信する組み込み機器のドライバをメンテしていて
受信したテキストの終端検出にEOLはキャラクタで扱っているし
送信する固定テキストは改行含めてリテラルにしたく
プリプロセッサの#か##で連結でなんとかできないか悩んでました。
PCとUSBシリアルで通信する組み込み機器のドライバをメンテしていて
受信したテキストの終端検出にEOLはキャラクタで扱っているし
送信する固定テキストは改行含めてリテラルにしたく
プリプロセッサの#か##で連結でなんとかできないか悩んでました。
110デフォルトの名無しさん (ワッチョイ d3d7-vbeK)
2017/08/22(火) 13:21:07.96ID:bF0tRsYk0 コンパイルしたらメンバー名と型の情報は消える
111C言語ますたー《ますたー軍団(常時募集)の長》 ◆Cmaster.sY (ラクッペ MMed-UZV0)
2017/08/22(火) 15:44:32.04ID:tfXVsICTM メモリアドレスを出力させればいいんじゃない?
%pで&aを表示できるはず
%pで&aを表示できるはず
112デフォルトの名無しさん (ワッチョイ 110d-JJVS)
2017/08/22(火) 16:43:27.00ID:xXPB4eWM0 与えられた変数から、メンバ名とその値を再帰的に列挙して欲しいんだろうけど
そんな都合の良い言語じゃないから自分で並べるしかない
必要に応じて毎回並べるか
並べて出力したものを関数化しといてそれを呼び出すか
そんな都合の良い言語じゃないから自分で並べるしかない
必要に応じて毎回並べるか
並べて出力したものを関数化しといてそれを呼び出すか
113デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)
2017/08/22(火) 17:44:12.68ID:NIldwpVs0 再帰的に列挙は自動だととんでもない情報量になったりするからな
そこから欲しい情報をどうやって抜き出すかが頭の使いどころ
そこから欲しい情報をどうやって抜き出すかが頭の使いどころ
114デフォルトの名無しさん (ワッチョイ 936f-jLVh)
2017/08/22(火) 22:53:39.27ID:YwU2BQ/U0 >>100
#include <stdio.h>
#define EOL x0a
#define _STRING(s) # s
#define STRING(s) _STRING(s)
#define _VALUE(s) 0 ## s
#define VALUE(s) _VALUE(s)
char a[] = "Hello" STRING(\EOL);
void main(void) {
int n;
n = VALUE(EOL);
printf("%02x [%s] \n", n, a);
}
#include <stdio.h>
#define EOL x0a
#define _STRING(s) # s
#define STRING(s) _STRING(s)
#define _VALUE(s) 0 ## s
#define VALUE(s) _VALUE(s)
char a[] = "Hello" STRING(\EOL);
void main(void) {
int n;
n = VALUE(EOL);
printf("%02x [%s] \n", n, a);
}
115デフォルトの名無しさん (ワッチョイ 6123-oL0b)
2017/08/22(火) 22:53:45.07ID:hpqXPKX70116デフォルトの名無しさん (ワッチョイ 6123-oL0b)
2017/08/22(火) 22:56:32.37ID:hpqXPKX70 あ。もうちょっとできたので今修正した。
117デフォルトの名無しさん (ワッチョイ d3d7-vbeK)
2017/08/22(火) 23:26:16.15ID:bF0tRsYk0 >>115
これってさ、メンバ名をconst char*にするんだよね?
これってさ、メンバ名をconst char*にするんだよね?
118デフォルトの名無しさん (ワッチョイ 8123-jLVh)
2017/08/22(火) 23:41:21.22ID:D8nSL4rC0119デフォルトの名無しさん (ワッチョイ 6123-oL0b)
2017/08/23(水) 00:06:55.83ID:b0JJUPNx0120デフォルトの名無しさん (ブーイモ MMb3-3KK3)
2017/08/23(水) 00:14:59.00ID:PJzK0CC4M 構造体のメンバ名がほしいとかデバッグ以外に何があるの
121デフォルトの名無しさん (ワッチョイ 8123-jLVh)
2017/08/23(水) 00:22:23.00ID:CuDbJhab0 >>120
有名どころはGUIのバインディング。
例えばWPFは自動的にリクレクションを使ってこれをやってくれる。詳細は以下参照。
http://www.atmarkit.co.jp/ait/articles/1010/08/news123.html
ただ、Cのアプリでこれは要らんし、今時生CでGUIもないよな?
有名どころはGUIのバインディング。
例えばWPFは自動的にリクレクションを使ってこれをやってくれる。詳細は以下参照。
http://www.atmarkit.co.jp/ait/articles/1010/08/news123.html
ただ、Cのアプリでこれは要らんし、今時生CでGUIもないよな?
122デフォルトの名無しさん (ワッチョイ c111-JJVS)
2017/08/23(水) 06:05:17.73ID:x0fRL5lg0 テキストベースで構造体の値のファイルへの保存と読み込みをしたいのかな
123デフォルトの名無しさん (ワッチョイ 09e4-xjvb)
2017/08/25(金) 05:26:20.30ID:vC6ff47f0 マクロでどうにかできるかとも考えたが壊れる対処のし様がない
#define pr(a,b) printf(pr_##a(b))
#define pr_test_t(b) "#b{i:%d,s:%s}", (b).i, (b).s
typedef strct{int i; char *s;}test_t;
pr((test_t){.i=999; .s="abc"});
#define pr(a,b) printf(pr_##a(b))
#define pr_test_t(b) "#b{i:%d,s:%s}", (b).i, (b).s
typedef strct{int i; char *s;}test_t;
pr((test_t){.i=999; .s="abc"});
124デフォルトの名無しさん (ワッチョイ e96f-oKtA)
2017/08/25(金) 05:30:42.91ID:hNG5yKqv0 Cはウンコ言語なのでリフレクションはありませんの一言で終わる質問
125デフォルトの名無しさん (ワッチョイ d623-0bAf)
2017/08/25(金) 08:26:26.12ID:degYWVoy0 C言語はもう 気ままにリフレクション
126デフォルトの名無しさん (スップ Sdca-wqH8)
2017/08/25(金) 08:28:37.56ID:+VfvF6y6d >>124
うんこじゃない言語もコンパイラはうんこ言語(お前に言わせるとC言語)でつくられてるけどな
うんこじゃない言語もコンパイラはうんこ言語(お前に言わせるとC言語)でつくられてるけどな
127デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 08:31:15.05ID:mWX/padLd 本当にうんこならとっくの昔に消えてるよ
128デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/25(金) 15:42:32.73ID:RGmsOxnq0 Cはうんことかほざくやつ
まさかLinuxなんか使ってねえだろな
まさかLinuxなんか使ってねえだろな
129デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/25(金) 17:02:40.42ID:mWX/padLd linuxはうんこ
130デフォルトの名無しさん (ワッチョイ b500-2x4P)
2017/08/25(金) 17:44:02.80ID:GY4pXB3S0 Cがウンコとか言ってる奴に限ってRubyでしか書けないとかいうオチだったら笑えるんだけどな
131デフォルトの名無しさん (ワッチョイ 41db-4xUk)
2017/08/25(金) 21:36:12.81ID:BZOsNf+t0 高級アセンブラ最高じゃん
132デフォルトの名無しさん (スップ Sdca-wqH8)
2017/08/25(金) 22:36:16.04ID:+VfvF6y6d >>131
ほんそれ
ほんそれ
133デフォルトの名無しさん (ワッチョイ caea-6Dzw)
2017/08/25(金) 22:45:39.22ID:IHFV3+gX0 むしろ Ruby で自由にコードを書ける人を尊敬する今日この頃。
最近やってるんだけど、どうしても馴染めない。普通には組めるけど、違和感が残るというか抵抗があるというか。
最近やってるんだけど、どうしても馴染めない。普通には組めるけど、違和感が残るというか抵抗があるというか。
134デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/26(土) 00:06:54.39ID:F7j6CSPU0 リフレクションを使う気がなければリフレクション自体がウンコだよ。
・ソースコードがだだ漏れ
・実行体が無駄に膨らむ(ソースコード情報を含むため)
・リクレクションが必要な用途なら、動的言語でついでに型無しの方が断然楽
GUIとかね。
ウンコと言われ続けたJavaScriptを誰も殺せず、
ついにはElectronとか言い出してデスクトップ側にも進出してきてるだろ。
やれば分かるがGUIに関しては動的型無しHTML(=JavaScript)は最強。
C言語はC言語が目指した範囲での仕様は美しいよ。
ただそこには今後ともリクレクションは必要ないね。
唯一引っかかるのは>>122か。
>>133
どの辺が?
俺はRuby使いではないが、それよりも酷いとされるJavaScriptには馴染んでしまったから、
ある程度は答えられるかも。
・ソースコードがだだ漏れ
・実行体が無駄に膨らむ(ソースコード情報を含むため)
・リクレクションが必要な用途なら、動的言語でついでに型無しの方が断然楽
GUIとかね。
ウンコと言われ続けたJavaScriptを誰も殺せず、
ついにはElectronとか言い出してデスクトップ側にも進出してきてるだろ。
やれば分かるがGUIに関しては動的型無しHTML(=JavaScript)は最強。
C言語はC言語が目指した範囲での仕様は美しいよ。
ただそこには今後ともリクレクションは必要ないね。
唯一引っかかるのは>>122か。
>>133
どの辺が?
俺はRuby使いではないが、それよりも酷いとされるJavaScriptには馴染んでしまったから、
ある程度は答えられるかも。
135デフォルトの名無しさん (ワッチョイ 09e4-xjvb)
2017/08/26(土) 00:48:52.34ID:acOQPPj10 lua等の組込み言語とやり取りする container生成用補助構文群が有ってもいい
関数では前方宣言とか scopeが邪魔して対処しきれないだろうから
うまくすれば文字列操作表示も標準libraryから追い出せる
関数では前方宣言とか scopeが邪魔して対処しきれないだろうから
うまくすれば文字列操作表示も標準libraryから追い出せる
136デフォルトの名無しさん (ワッチョイ 09e4-xjvb)
2017/08/26(土) 00:52:27.30ID:acOQPPj10 pr(test_t, (test_t){.i=999; .s="abc";});
137デフォルトの名無しさん (ワッチョイ b632-+Jgu)
2017/08/26(土) 14:20:33.57ID:rkE5GYva0138デフォルトの名無しさん (ワッチョイ 6aab-M74o)
2017/08/29(火) 00:26:03.40ID:+Y8D6iZy0 >>134
規模が大きい場合は型があって静的に検査できるほうが便利だねというのが世間の流れだと思うが
TypeScriptとかFlowとか
速度を稼ぐ目的でwasmも今後主流になっていくだろう
巨大ストレージ、OSSが主流な時代にメタデータのサイズやソース隠蔽は気にしなくなったし
規模が大きい場合は型があって静的に検査できるほうが便利だねというのが世間の流れだと思うが
TypeScriptとかFlowとか
速度を稼ぐ目的でwasmも今後主流になっていくだろう
巨大ストレージ、OSSが主流な時代にメタデータのサイズやソース隠蔽は気にしなくなったし
139デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/29(火) 02:58:14.41ID:Uz0lh6nE0 >>138
> 規模が大きい場合は型があって静的に検査できるほうが便利だねというのが世間の流れだと思うが
違うね。今の流れは「選べる」だ。つまり、
・型無し言語に型情報を付加し、恩恵を受ける---TypeScript
・型あり言語に型推論やジェネリックを追加し、型情報を記述する煩わしさを回避---C#/C++/Java
どっちも出来ることはほぼ同じ。ほぼ全ての言語がここを目指してるでしょ。(Cを除く)
要するにいいとこ取りを目指しているわけで、自然な流れだ。
型があった方が助かるのなら書け、煩わしいだけなら書かなくて済む、という方向に進化しつつある。
なお、GUIに関しては型無しでも大して苦労しない。バグっているかどうかは見れば分かるから。
> 速度を稼ぐ目的でwasmも今後主流になっていくだろう
ならんと思うし、C使いにとってはなったとしてもああそうですか、でしかないと思うが。
> 巨大ストレージ、OSSが主流な時代にメタデータのサイズやソース隠蔽は気にしなくなったし
OSSについては歪んでいて、本来は選べるべきだよ。
JavaScriptのようにソース曝露必須というのは問題ではある。
富豪どころか大富豪プログラミングを自由に出来る時代ではあるが、
何だかんだで速度=バッテリの持ち/快適さなので、実際は、「気にしなくていい環境も増えた」だよ。
とはいえCレベルでのチューニングが必要なこともそうないが。
> 規模が大きい場合は型があって静的に検査できるほうが便利だねというのが世間の流れだと思うが
違うね。今の流れは「選べる」だ。つまり、
・型無し言語に型情報を付加し、恩恵を受ける---TypeScript
・型あり言語に型推論やジェネリックを追加し、型情報を記述する煩わしさを回避---C#/C++/Java
どっちも出来ることはほぼ同じ。ほぼ全ての言語がここを目指してるでしょ。(Cを除く)
要するにいいとこ取りを目指しているわけで、自然な流れだ。
型があった方が助かるのなら書け、煩わしいだけなら書かなくて済む、という方向に進化しつつある。
なお、GUIに関しては型無しでも大して苦労しない。バグっているかどうかは見れば分かるから。
> 速度を稼ぐ目的でwasmも今後主流になっていくだろう
ならんと思うし、C使いにとってはなったとしてもああそうですか、でしかないと思うが。
> 巨大ストレージ、OSSが主流な時代にメタデータのサイズやソース隠蔽は気にしなくなったし
OSSについては歪んでいて、本来は選べるべきだよ。
JavaScriptのようにソース曝露必須というのは問題ではある。
富豪どころか大富豪プログラミングを自由に出来る時代ではあるが、
何だかんだで速度=バッテリの持ち/快適さなので、実際は、「気にしなくていい環境も増えた」だよ。
とはいえCレベルでのチューニングが必要なこともそうないが。
140デフォルトの名無しさん (ワッチョイ ad7f-vgeI)
2017/08/29(火) 07:49:01.20ID:pPJ906sN0 >・型無し言語に型情報を付加し、恩恵を受ける---TypeScript
>・型あり言語に型推論やジェネリックを追加し、型情報を記述する煩わしさを回避---C#/C++/Java
後者は型を明示的に書かなくてもいというだけで最初からすべて型検査してるぞ。
型検査について言えば、動的型付け言語に静的な型検査を導入する流れはあるが逆はない。
>・型あり言語に型推論やジェネリックを追加し、型情報を記述する煩わしさを回避---C#/C++/Java
後者は型を明示的に書かなくてもいというだけで最初からすべて型検査してるぞ。
型検査について言えば、動的型付け言語に静的な型検査を導入する流れはあるが逆はない。
141デフォルトの名無しさん (ワッチョイ d623-0bAf)
2017/08/29(火) 08:29:00.57ID:E7mhir0G0 動かす前にバグが見つかる仕掛けがちゃんとあるなら
動的型付けでも構わんよ
動的型付けでも構わんよ
142デフォルトの名無しさん (ワッチョイ 41db-4xUk)
2017/08/29(火) 14:42:19.23ID:/UmWkn6m0 無理ゲーっぽくね?
143デフォルトの名無しさん (ワッチョイ 41db-4xUk)
2017/08/29(火) 14:47:49.09ID:/UmWkn6m0 んなことはないみたいだぬ
144デフォルトの名無しさん (ドコグロ MM72-+ULf)
2017/08/29(火) 18:55:09.32ID:qEt/+AkhM 100%は無理
そこそこなら行ける
そこそこなら行ける
145デフォルトの名無しさん (ワッチョイ 2aef-vgeI)
2017/08/29(火) 20:04:11.09ID://zGX0GI0 option explicit +中間言語コンパイル,なら使えそうだ
146デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/29(火) 22:43:29.12ID:Uz0lh6nE0 >>140
> 型検査について言えば、動的型付け言語に静的な型検査を導入する流れはあるが逆はない。
これは事実としてはその通りだが、理由はこれが型あり言語の正義だからであって、
現実は型検査がウザイだけの時も多いだろ。
C++のtemplateとか、varで書いたら勝手にtemplate化してくれ、という場合も多い。
込み入ったことをやるとコンパイルを通すだけの為に苦労したりするが、
あんなのは完全に時間と手間の無駄だ。
また、他でもよく言われているが、確かに関数ポインタを常用し始めた場合、
型あり『しか出来ない』言語は壮絶にウザイ。どうでもいい型が氾濫するだけだし。
言語として出来る/出来ないではなく、
ユーザーがやりたい時には出来る/やりたくない時には切れる、が正解なんだよ。
型無し言語はこれを認めていて、欠点を修正し始めてる。
型あり言語はこれを認められず、まだ自分たちの正義(型検査は必須)を押し売りしてるだけ。
C(と言うかC++)ではconstがこの状況に近いのではないかな?
通説ではconstは付けるべき、となっているが、俺は付けてない。理由は、
・そもそも俺はconstで苦労したことがない(必要性を感じない)
・中途半端に付けてると余計に面倒になるだけ
・const_castとか、ただの馬鹿としか思えない
なんだが、同様の意見の奴もある程度はいるだろ。
過剰な型検査ってのはあるんだよ。それが人によって異なるってだけで。
やればいいって物ではない。
> 型検査について言えば、動的型付け言語に静的な型検査を導入する流れはあるが逆はない。
これは事実としてはその通りだが、理由はこれが型あり言語の正義だからであって、
現実は型検査がウザイだけの時も多いだろ。
C++のtemplateとか、varで書いたら勝手にtemplate化してくれ、という場合も多い。
込み入ったことをやるとコンパイルを通すだけの為に苦労したりするが、
あんなのは完全に時間と手間の無駄だ。
また、他でもよく言われているが、確かに関数ポインタを常用し始めた場合、
型あり『しか出来ない』言語は壮絶にウザイ。どうでもいい型が氾濫するだけだし。
言語として出来る/出来ないではなく、
ユーザーがやりたい時には出来る/やりたくない時には切れる、が正解なんだよ。
型無し言語はこれを認めていて、欠点を修正し始めてる。
型あり言語はこれを認められず、まだ自分たちの正義(型検査は必須)を押し売りしてるだけ。
C(と言うかC++)ではconstがこの状況に近いのではないかな?
通説ではconstは付けるべき、となっているが、俺は付けてない。理由は、
・そもそも俺はconstで苦労したことがない(必要性を感じない)
・中途半端に付けてると余計に面倒になるだけ
・const_castとか、ただの馬鹿としか思えない
なんだが、同様の意見の奴もある程度はいるだろ。
過剰な型検査ってのはあるんだよ。それが人によって異なるってだけで。
やればいいって物ではない。
147デフォルトの名無しさん (ワッチョイ ad7f-vgeI)
2017/08/29(火) 22:56:30.74ID:pPJ906sN0 なんだ?>>139の「違うね」ってのは現状認識が違うって話じゃなくてあんたの理想と違うってことか?
そりゃ正解はあんたにしかわからんわ。
そりゃ正解はあんたにしかわからんわ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
