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/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
※前スレ
C言語なら俺に聞け 152
https://mevius.5ch.net/test/read.cgi/tech/1560763630/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 153
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fba-LL4R)
2019/08/17(土) 23:02:42.00ID:tN5mSQYg02さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/18(日) 01:45:05.03ID:f2ZPM7Xhd 乙。くるしうない。
3デフォルトの名無しさん (ワッチョイ 132c-BF++)
2019/08/18(日) 03:38:02.60ID:26pp6bRY0 仮想アセンブラは、元々、日本の情報処理資格試験用に、CASL2 が作られた。
個別のCPU 命令では、試験にふさわしくないから、抽象化した命令が必要だった
でも、世界的には流行らなかった
それで、学生が作った、LLVM に、Apple が飛びついた
個別のCPU 命令では、試験にふさわしくないから、抽象化した命令が必要だった
でも、世界的には流行らなかった
それで、学生が作った、LLVM に、Apple が飛びついた
4デフォルトの名無しさん (ワッチョイ 13a5-1WPq)
2019/08/18(日) 09:39:05.87ID:S9bN8HAf0 実像を見てない試験で社会から乖離してるな
バkの集団なんだろうか?
それともz80の問題だしたらライセンス料でも払わないといけないのか?
カネに掛けてはとかくケチな貧乏人が思い付きそうな小手先だ
至るところで独自規格で無意味の羅列、全く学習にならず、受けるだけムダな試験が練り上げられる
バkの集団なんだろうか?
それともz80の問題だしたらライセンス料でも払わないといけないのか?
カネに掛けてはとかくケチな貧乏人が思い付きそうな小手先だ
至るところで独自規格で無意味の羅列、全く学習にならず、受けるだけムダな試験が練り上げられる
5デフォルトの名無しさん (ワッチョイ 39f6-g2bq)
2019/08/18(日) 09:57:01.01ID:OvlvScl60 試験用のアセンブラは、仕様を公開せずに
試験問題の中で初見にすればいい
それで対応力を試すようにすれば
いくらか意味のある試験になる
試験問題の中で初見にすればいい
それで対応力を試すようにすれば
いくらか意味のある試験になる
6デフォルトの名無しさん (ラクッペ MMa5-66q6)
2019/08/18(日) 10:09:11.56ID:/GvnB8qbM 以前に実施されていたマイコン応用システム開発技術者試験のアセンブラ問題は8080, Z80, 6800からの選択だった
現在の情報処理試験エンベデッドシステムの前身となった資格試験
現在の情報処理試験エンベデッドシステムの前身となった資格試験
7デフォルトの名無しさん (ワッチョイ 13a5-1WPq)
2019/08/18(日) 10:17:41.38ID:S9bN8HAf0 実際に使えないものを教えられてるのは英語と同じだな
CASLやっても機械語の練習にならない
「教育用」にまで形骸化すると使い物にならない、現実と実用から乖離する、ファンタジーになる、
これが「教育用」の弊害だ
PASCAL不人気の原因もここら辺にあるんじゃねえか?
IT界隈は教育用と実用の間で揺れてる
CASLやっても機械語の練習にならない
「教育用」にまで形骸化すると使い物にならない、現実と実用から乖離する、ファンタジーになる、
これが「教育用」の弊害だ
PASCAL不人気の原因もここら辺にあるんじゃねえか?
IT界隈は教育用と実用の間で揺れてる
8デフォルトの名無しさん (ワッチョイ 8bf2-Zpsd)
2019/08/18(日) 12:10:38.91ID:RmgmCswc0 >>2 先生 700行の数式パーサーまたHPに載せて下さい!
9デフォルトの名無しさん (ワッチョイ d144-9R4q)
2019/08/18(日) 13:54:54.01ID:NDt9ShII0 ハゲタマゴどこ行った
10デフォルトの名無しさん (ワッチョイ d901-KVZO)
2019/08/19(月) 00:21:34.86ID:IzREAmBO0 生理がこないんですけど
どうしたらいいですか?
どうしたらいいですか?
11デフォルトの名無しさん (ワッチョイ b9f2-oami)
2019/08/19(月) 01:35:14.42ID:HWxct0dM0 >>10
D
D
12デフォルトの名無しさん (ワッチョイ 5995-dCD9)
2019/08/19(月) 02:31:19.64ID:WV8MsfnG0 コンパイルもリンクも正常に動いているようだぞ
生まれたのがバグじゃなくて良かったな ha ha ha
生まれたのがバグじゃなくて良かったな ha ha ha
13入門 (ワッチョイ d901-QMAU)
2019/08/19(月) 07:50:31.64ID:AfRfI86I0 http://program-lecture.info/c_structure5.html
ここのサイトを見ながら学習しているのですがこのshowStatus関数では何故int配列を
int型の仮引数で受け取れてるのでしょうか?配列は配列かポインタでしか受け取れないと思ってたんですが
その認識は間違ってますか
よろしくお願い致します。
ここのサイトを見ながら学習しているのですがこのshowStatus関数では何故int配列を
int型の仮引数で受け取れてるのでしょうか?配列は配列かポインタでしか受け取れないと思ってたんですが
その認識は間違ってますか
よろしくお願い致します。
14デフォルトの名無しさん (ワッチョイ 13ad-qB3k)
2019/08/19(月) 08:28:31.64ID:kSnvMIS70 >>13
showStatus()はint型でもint型配列でもなくcharacter型を受け取ってるようだが?
showStatus()はint型でもint型配列でもなくcharacter型を受け取ってるようだが?
15デフォルトの名無しさん (ワッチョイ 8b69-LL4R)
2019/08/19(月) 09:48:04.61ID:O1nZQbpw0 showStasus() の引数は struct person 型の実体を受けてる
main では
struct person 型の配列を用意 party[]
配列の各要素 party[0], party[1] のぞれぞれについて showStatus() を呼んでいる
本質的には
void foo(int arg);
int main() {
int array[2];
foo(array[0]);
foo(array[1]);
return 0;
}
これと同じ
main では
struct person 型の配列を用意 party[]
配列の各要素 party[0], party[1] のぞれぞれについて showStatus() を呼んでいる
本質的には
void foo(int arg);
int main() {
int array[2];
foo(array[0]);
foo(array[1]);
return 0;
}
これと同じ
17蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 4901-n+xS)
2019/08/19(月) 20:10:40.78ID:GYeBbzEk0 >>8
あのコードは今となっては時代遅れだ。意味がない。
あのコードは今となっては時代遅れだ。意味がない。
18デフォルトの名無しさん (ワッチョイ 09a3-m73o)
2019/08/19(月) 20:19:09.86ID:PrhOfqin0 先生書き直さないんですか?w
19蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 4901-n+xS)
2019/08/19(月) 20:20:07.30ID:GYeBbzEk020デフォルトの名無しさん (アウアウカー Sa5d-KcV4)
2019/08/24(土) 22:48:02.26ID:UVaZe+22a 下のコードの部分を実行すると、最後の行だけ2回表示されます。
理由はなぜでしょうか?また、最後も1回にするにはどう変更したら良いでしょうか?
よろしくお願いします。
http://codepad.org/WCL1vHLd
理由はなぜでしょうか?また、最後も1回にするにはどう変更したら良いでしょうか?
よろしくお願いします。
http://codepad.org/WCL1vHLd
21デフォルトの名無しさん (ラクッペ MM69-RTXP)
2019/08/24(土) 23:20:14.88ID:xKwct0SAM >>20
if ( !fgets(buf, sizeof(buf), fp) ) break;
if ( !fgets(buf, sizeof(buf), fp) ) break;
2220 (ワッチョイ f125-KcV4)
2019/08/25(日) 00:34:55.25ID:9+tsViui02320 (ワッチョイ f125-KcV4)
2019/08/25(日) 00:46:09.40ID:9+tsViui0 >>22 の修正だと最後の行以外にもだいぶ表示されなくなってました。
どうするのが正解なのでしょうか?
どうするのが正解なのでしょうか?
24デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/25(日) 00:52:09.44ID:uvOm2rq20 良いのか?って聞かれると
色々言いたくなる奴が大勢出てきそう
色々言いたくなる奴が大勢出てきそう
25デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/25(日) 01:04:15.99ID:uvOm2rq20 >>23
//while ( !feof(fp) ) {
while (fgets(buf, sizeof(buf), fp)!=NULL){
//fgets(buf, sizeof(buf), fp);
こんなんでどうか
//while ( !feof(fp) ) {
while (fgets(buf, sizeof(buf), fp)!=NULL){
//fgets(buf, sizeof(buf), fp);
こんなんでどうか
2620 (ワッチョイ f125-KcV4)
2019/08/25(日) 03:58:18.71ID:9+tsViui0 >>25 うまくいきました! Thanks!
やっぱり俺に訊けスレですね。ここの人達はすごい。
if ( (fp = popen(cmdline,"r")) == NULL ) {
perror ("can not exec commad");
}
while (fgets(buf, sizeof(buf), fp)!=NULL){
printf("%s", buf);
}
pclose(fp);
最終的にこうなりなした。助かりました。
やっぱり俺に訊けスレですね。ここの人達はすごい。
if ( (fp = popen(cmdline,"r")) == NULL ) {
perror ("can not exec commad");
}
while (fgets(buf, sizeof(buf), fp)!=NULL){
printf("%s", buf);
}
pclose(fp);
最終的にこうなりなした。助かりました。
27デフォルトの名無しさん (ワッチョイ 7a2c-3Uq+)
2019/08/25(日) 04:09:39.00ID:SpCWKyo10 Ruby では、Windows の、powershell, clip コマンドも呼べる。
UTF-8, CP932 の文字コード変換もできる
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
UTF-8, CP932 の文字コード変換もできる
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
28デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/12(木) 14:34:32.33ID:PzZxK66KM defineマクロで以下をやりたいです。
struct my{
int d0 =0;
int d1 =0;
int d2 =0;
int d3 =0;
int d4 =0;
}:
struct my val;
val[0:2] = (1, 1, 1);
と入力した時にvalのdata0〜data2に1が入るようなマクロはどう書けばいいですか?
struct my{
int d0 =0;
int d1 =0;
int d2 =0;
int d3 =0;
int d4 =0;
}:
struct my val;
val[0:2] = (1, 1, 1);
と入力した時にvalのdata0〜data2に1が入るようなマクロはどう書けばいいですか?
29デフォルトの名無しさん (ワッチョイ ff2f-lH3V)
2019/09/12(木) 18:39:59.73ID:7fKDA9wF0 __VA_ARGS__ つこて2段呼び出しだな
qiita.com/saltheads/items/e1b0ab54d3d6029c9593
qiita.com/saltheads/items/e1b0ab54d3d6029c9593
30デフォルトの名無しさん (ワッチョイ 9f68-Ivwm)
2019/09/15(日) 10:20:29.94ID:Y/GLm+KZ0 >>29
ありがとうございます。
リンクを参考に、可変引数にするマクロまでは出来ました。(作った関数が間違えていたらすみません。)
struct my def2(struct my val, int s, int e, int d1, int d2){
int *p = val.d0;
*(p+s) = d1:
*(p+e) = d2;
return val;
}
/*def3省略*/
#define GET_MACRO(_1,_2,_3,NAME,...) NAME
#define DEF(val,s,e,...) GET_MACRO(__VA_ARGS__, def3, def2)(val,s,e,__VA_ARGS__)
ここから、表記を変える方法が分かりません。
下のようなことをしたいのですが、このように書くとコンパイルエラーになりました。
どう書けばいいでしょうか。
#define VAL[A:B]=(...) DEF(VAL,A,B,__VA_ARGS__)
ありがとうございます。
リンクを参考に、可変引数にするマクロまでは出来ました。(作った関数が間違えていたらすみません。)
struct my def2(struct my val, int s, int e, int d1, int d2){
int *p = val.d0;
*(p+s) = d1:
*(p+e) = d2;
return val;
}
/*def3省略*/
#define GET_MACRO(_1,_2,_3,NAME,...) NAME
#define DEF(val,s,e,...) GET_MACRO(__VA_ARGS__, def3, def2)(val,s,e,__VA_ARGS__)
ここから、表記を変える方法が分かりません。
下のようなことをしたいのですが、このように書くとコンパイルエラーになりました。
どう書けばいいでしょうか。
#define VAL[A:B]=(...) DEF(VAL,A,B,__VA_ARGS__)
31デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 12:30:40.49ID:58rKn0L90 マクロ使わずにこれで十分だろ。
typedef struct my;
val = (my){1,1,1};
val = (my){1,1,1,1};
以下のようにはできるけど、
マクロの多用は誰もソースを読みたくなくなるから避けたほうがいいよ
#define SET(v,...) v=(struct my){__VA_ARGS__}
SET(val, 1, 1, 1)
typedef struct my;
val = (my){1,1,1};
val = (my){1,1,1,1};
以下のようにはできるけど、
マクロの多用は誰もソースを読みたくなくなるから避けたほうがいいよ
#define SET(v,...) v=(struct my){__VA_ARGS__}
SET(val, 1, 1, 1)
32デフォルトの名無しさん (ワッチョイ 9f68-Ivwm)
2019/09/15(日) 13:05:57.26ID:Y/GLm+KZ033デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 13:41:31.71ID:58rKn0L90 #define SET(x,s,e,...) memcpy(((int*)&val)+s,&(int[]){__VA_ARGS__},sizeof(int)*(e-s))
SET(val, 1, 3, 1, 1)
SET(val, 1, 4, 1, 1, 1)
部下がこんなコード書いてきたら突っ返すわ
SET(val, 1, 3, 1, 1)
SET(val, 1, 4, 1, 1, 1)
部下がこんなコード書いてきたら突っ返すわ
34デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/15(日) 15:47:59.75ID:v7T7Pyv90 ID:Y/GLm+KZ0 が上司だったらと想定してみよう。
35デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 15:59:14.90ID:58rKn0L90 自分の考えが浅はかでした。申し訳ありません
36デフォルトの名無しさん (ワッチョイ ff7c-6eqr)
2019/09/17(火) 11:43:21.23ID:tz0JLczQ0 >>34
背中を撃たれてしまうのでは・・・?
背中を撃たれてしまうのでは・・・?
37デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 13:01:08.68ID:pZqZMIzxM うーん、どうにかして上のように[]を使って書き換えることは出来ないのですかね。
ちなみに下のようにして全パターン定義しようとしたらエラーでした。何故でしょうか。
#define val[0:2]=(...) DEF(val,0,2,__VA_ARGS__)
ちなみに下のようにして全パターン定義しようとしたらエラーでした。何故でしょうか。
#define val[0:2]=(...) DEF(val,0,2,__VA_ARGS__)
38デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/17(火) 14:46:00.52ID:nfIIVgp70 マクロ諦めてインライン関数にしたら?
39デフォルトの名無しさん (アウアウウー Sa63-ErpI)
2019/09/17(火) 19:09:34.89ID:g1BlUkdva >>37
なぜって、#defineを使用するための構文を完全に無視してるからだよ。こちらが思ったことを都合良く解釈してくれるわけでなく、構文通りの単純な置換をしてくれるだけだよ。
一度ちゃんと調べておいた方がいい。
なぜって、#defineを使用するための構文を完全に無視してるからだよ。こちらが思ったことを都合良く解釈してくれるわけでなく、構文通りの単純な置換をしてくれるだけだよ。
一度ちゃんと調べておいた方がいい。
40デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 19:57:33.48ID:pZqZMIzxM41デフォルトの名無しさん (アウアウウー Sa63-ErpI)
2019/09/17(火) 20:37:25.67ID:g1BlUkdva >>40
不可能。やるなら自前でプリプロセサでも書けばいいが、そんなことするくらいなら、ソース上に書くのではなく独自のデータファイルとそれを読み込んでデータを初期化するような処理でも作れば?
不可能。やるなら自前でプリプロセサでも書けばいいが、そんなことするくらいなら、ソース上に書くのではなく独自のデータファイルとそれを読み込んでデータを初期化するような処理でも作れば?
42デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 20:47:01.62ID:pZqZMIzxM43デフォルトの名無しさん (アウアウウー Sa63-0qvw)
2019/09/17(火) 22:44:02.30ID:WDh8MszDa 新言語作った方が良さそうな。
初期のC++みたいにC言語へのコンバータとして作っちゃえば楽だと思う。Cと同じで良い部分はほとんど素通しで行けるし。
初期のC++みたいにC言語へのコンバータとして作っちゃえば楽だと思う。Cと同じで良い部分はほとんど素通しで行けるし。
44デフォルトの名無しさん (ワッチョイ 7f79-6eqr)
2019/09/18(水) 03:52:29.58ID:YwguJHoc0 そこまでしてCに拘る意味がわからない
45デフォルトの名無しさん (ワッチョイ 9f01-rDRx)
2019/09/18(水) 05:50:30.71ID:A+b/Im8h0 あの変態的にC言語には見えないObjective CでさえほとんどプリプロセッサでCに変換してからコンパイルしてたと聞くので、やろうと思えばできるんだろうね。
46デフォルトの名無しさん (ワッチョイ ff8c-e0wG)
2019/09/18(水) 07:02:57.91ID:ik5RQtCe0 yaccとlexを使えばできるだろう。たぶん
47デフォルトの名無しさん (ブーイモ MM9f-+9C/)
2019/09/18(水) 08:32:22.55ID:cLmp+ocZM 独自言語を開発したときなんかはとりあえずCに変換するというのはわりとある話。
コード生成とか最適化とか考えずに済むから。
昔、独自じゃないけど、とある言語からCへのコンバータ作ったよ。
楽しかった。
コード生成とか最適化とか考えずに済むから。
昔、独自じゃないけど、とある言語からCへのコンバータ作ったよ。
楽しかった。
48デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/18(水) 08:40:59.31ID:vdXxwq0s0 コンパイル前にソースを別のソフトで変換、置き換えさせて・・・
49デフォルトの名無しさん (ワッチョイ 9ff2-VIbU)
2019/09/18(水) 09:00:45.02ID:qgVAc8a30 そしてCにもどるネズミの嫁入り
50デフォルトの名無しさん (ワッチョイ 7fa5-ZFGe)
2019/09/18(水) 12:47:21.47ID:1Vhu13ZT0 BNFとyaccのお勉強から
51デフォルトの名無しさん (アウアウクー MM11-bPqq)
2019/09/19(木) 15:34:03.81ID:yCvdPLl+M #define ARR_NAME(n) arr##n
int arr0 [] = {0,0,0};
int arr1 [] = {1,1,1};
int* select_arr(int i){
return ARR_NAME(i);
}
これはどうしてコンパイルエラーになりますか?
ちなみにreturn ARR_NAME(0)だと正しく動きます。
int arr0 [] = {0,0,0};
int arr1 [] = {1,1,1};
int* select_arr(int i){
return ARR_NAME(i);
}
これはどうしてコンパイルエラーになりますか?
ちなみにreturn ARR_NAME(0)だと正しく動きます。
52デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/19(木) 16:38:05.33ID:1k0/HGmS0 タイミングの問題だ
#defineはコンパイル前に解釈されるが
関数仮引数の値は実行時に渡される
実行時とはコンパイル〜リンクまで全て終わった後の話だ
だから関数仮引数の値を#defineで置き換えることができない
#defineはコンパイル前に解釈されるが
関数仮引数の値は実行時に渡される
実行時とはコンパイル〜リンクまで全て終わった後の話だ
だから関数仮引数の値を#defineで置き換えることができない
53さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-en/k)
2019/09/19(木) 17:34:18.54ID:fzYUHnaEd arriという変数はない。プリプロセッサでは変数の中身までは見られない。
54デフォルトの名無しさん (アウアウクー MM11-bPqq)
2019/09/19(木) 18:13:33.75ID:yCvdPLl+M 分かりやすかったです。ありがとう。
この機能の代替として良き方法はありますか?配列のdimを増やすしかないですか?
この機能の代替として良き方法はありますか?配列のdimを増やすしかないですか?
55さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-en/k)
2019/09/19(木) 18:22:24.66ID:fzYUHnaEd 次元を増やすのがベストだろう。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 [蚤の市★]
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ [597533159]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ180
- 🏡
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 高市早苗「竹島は日本領土」 [834922174]
