!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ af9f-7TBo)
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT02デフォルトの名無しさん (アウアウウー Saf1-6HWJ)
2018/10/29(月) 21:37:04.36ID:l03/lfXna 0x99b9e4313e3e
3デフォルトの名無しさん (ワイモマー MM9b-Vh4f)
2018/10/30(火) 23:57:20.35ID:EION13qUM 自分を賢いと思っている馬鹿は
周りが自分をどう見ているかも
相手がどのレベルにいるのかも
なぜ自分が放置されてるのかも
何一つ知らない
周りが自分をどう見ているかも
相手がどのレベルにいるのかも
なぜ自分が放置されてるのかも
何一つ知らない
4デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/01(木) 16:13:41.13ID:upF+pHX50 musl-libcみたいに,特定のOSのプロジェクトではないPOSIXユーティリティの実装ってありますかね。
5デフォルトの名無しさん (アウアウエー Sa52-qQUz)
2018/11/01(木) 17:07:48.90ID:g+DLXddba NewLibとかあったね
6デフォルトの名無しさん (ワッチョイ a361-ZA70)
2018/11/03(土) 10:27:59.63ID:gIO4YTzK0 strtok_sを4変数にするとエラーになるんですけどどうしたらいいですか?
strmaxがある説明と無い説明があってわからないです。
strmaxがある説明と無い説明があってわからないです。
7デフォルトの名無しさん (ブーイモ MMba-rFq1)
2018/11/03(土) 11:28:06.76ID:hj5IrB61M >>6
msvcのstrtok_sは非標準だから、_MSC_VERとかが定義されてるかどうかで呼び分けるしかないね。
あんまり覚えてないけどmsvcバージョンのほうが先にあった気がするから、iso/iecが悪い気がする。(間違ってるかも)
まあmsが切り替えスイッチを用意してくれればよいのだけど。
msvcのstrtok_sは非標準だから、_MSC_VERとかが定義されてるかどうかで呼び分けるしかないね。
あんまり覚えてないけどmsvcバージョンのほうが先にあった気がするから、iso/iecが悪い気がする。(間違ってるかも)
まあmsが切り替えスイッチを用意してくれればよいのだけど。
8デフォルトの名無しさん (ワッチョイ a361-ZA70)
2018/11/07(水) 08:24:14.69ID:60G+FgCT0 >>7
よくわからないのでstrtokを使いました。
よくわからないのでstrtokを使いました。
9デフォルトの名無しさん (アークセー Sxbb-0Z6C)
2018/11/07(水) 16:09:41.16ID:39tnP8GCx ちょっとお知恵を拝借。
符号付き14ビットの整数があるとき(14ビットのMSBが符号ビット)、その値を符号付き16ビット値に拡張するうまいやり方はないでしょうか?
拡張後も符号や数値自体は変化なしです。
例えば2進で
10 1010 1010 1010
という符号付き14ビット値があった時、
1110 1010 1010 1010
のように変換したい。
14ビット値を16ビット符号付き変数に入れて左に2ビット論理シフトし、さらに右に2ビット算術シフトすれば実現できるのですが、何となく気持ち悪くて。
サクッとエレガントな方法はないでしょうか?
符号付き14ビットの整数があるとき(14ビットのMSBが符号ビット)、その値を符号付き16ビット値に拡張するうまいやり方はないでしょうか?
拡張後も符号や数値自体は変化なしです。
例えば2進で
10 1010 1010 1010
という符号付き14ビット値があった時、
1110 1010 1010 1010
のように変換したい。
14ビット値を16ビット符号付き変数に入れて左に2ビット論理シフトし、さらに右に2ビット算術シフトすれば実現できるのですが、何となく気持ち悪くて。
サクッとエレガントな方法はないでしょうか?
10デフォルトの名無しさん (JP 0He3-4S5W)
2018/11/07(水) 16:25:54.26ID:Gtw+mwj/H >>9
シフトが一番エレガント。
シフトが一番エレガント。
11デフォルトの名無しさん (ドコグロ MM92-Ax9l)
2018/11/07(水) 18:02:56.37ID:d49i6th8M12デフォルトの名無しさん (アウアウウー Sac7-AdN2)
2018/11/07(水) 18:16:05.56ID:bimd4khFa もはや答えが出切ったと思うので斜め上からの回答でも書いておくか。
回答
int型が14ビットの整数型になっているCコンパイラを使う。
もちろんchar型は7ビット。
CPUは1バイトが7ビットである。
回答
int型が14ビットの整数型になっているCコンパイラを使う。
もちろんchar型は7ビット。
CPUは1バイトが7ビットである。
13デフォルトの名無しさん (ドコグロ MM92-Ax9l)
2018/11/07(水) 19:11:16.88ID:d49i6th8M それ16bitの結果得るのが面倒なだけだろ
もう少し面白い回答頼むわ
もう少し面白い回答頼むわ
14デフォルトの名無しさん (バッミングク MM86-0Z6C)
2018/11/07(水) 19:12:35.33ID:xr+D7aWAM 皆様回答ありがとうございます。
今回はビットシフト方式で行こうと思います。
>>12
使ってるCPUとコンパイラがマイナーな、ある意味純粋な16ビット環境で、sizeof(char)もsizeof(short)も1を返し、sizeof(long)は2を返すような特殊な環境なので7ビットマイコンではありません。
今回はビットシフト方式で行こうと思います。
>>12
使ってるCPUとコンパイラがマイナーな、ある意味純粋な16ビット環境で、sizeof(char)もsizeof(short)も1を返し、sizeof(long)は2を返すような特殊な環境なので7ビットマイコンではありません。
15デフォルトの名無しさん (ワッチョイ 8bb3-MyS3)
2018/11/07(水) 19:46:07.55ID:SCUqGzCI0 intが14ビット
そんな処理系あるの?
そんな処理系あるの?
16デフォルトの名無しさん (アウアウウー Sac7-AdN2)
2018/11/07(水) 20:47:19.69ID:bimd4khFa17デフォルトの名無しさん (ワッチョイ 1a12-Q1ft)
2018/11/07(水) 20:49:47.59ID:YuYLxFMn0 60〜70年代メインフレームは百花繚乱だったなぁ
ttps://en.wikipedia.org/wiki/Word_(computer_architecture)
27bitマシンとかどーすんだよ
ttps://en.wikipedia.org/wiki/Word_(computer_architecture)
27bitマシンとかどーすんだよ
18デフォルトの名無しさん (アメ MM7f-Ul28)
2018/11/07(水) 20:55:36.02ID:Lazgvcn1M このように1バイトが何ビットかはアーキテクチャ依存のため、EUではハードディスクなどのパッケージにはGB単独表記は認められず、Go(ギガオクテット)を併記または単独で表記しなければならない。
1オクテットは必ず8バイト。
1オクテットは必ず8バイト。
19デフォルトの名無しさん (ブーイモ MMba-rFq1)
2018/11/07(水) 21:07:14.78ID:fEoWtkRgM つまりEUでもHDDの容量はわからないってことか
20デフォルトの名無しさん (ワッチョイ 8bb3-0Z6C)
2018/11/07(水) 21:09:34.64ID:u7stYdWj0 >>18
いや、Octetは8ビットでは?
いや、Octetは8ビットでは?
21デフォルトの名無しさん (アメ MM7f-Ul28)
2018/11/07(水) 21:12:33.55ID:Lazgvcn1M そうでしたwwwww
22デフォルトの名無しさん (アウアウカー Sac3-U2lQ)
2018/11/07(水) 21:19:59.22ID:h4FWJh3Ka 大丈夫。
文脈から理解はしてる。
上げ足取りなだけだ。
文脈から理解はしてる。
上げ足取りなだけだ。
23デフォルトの名無しさん (ワッチョイ 7f76-MyS3)
2018/11/07(水) 21:47:40.71ID:lW24kLVO0 バグってそういうもんだろ
笑ってられる神経が異常だ
笑ってられる神経が異常だ
24デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/07(水) 23:27:18.47ID:fWOqg0Pc0 バカってそういうもんだろ
25デフォルトの名無しさん (ワッチョイ 9333-YP9l)
2018/11/08(木) 00:45:35.31ID:LWRNNBjj0 >>12
CHAR_BIT は 8 以上、 INT_MAX は 32767 以上って規定があるから、規格非準拠になっちゃう。
CHAR_BIT は 8 以上、 INT_MAX は 32767 以上って規定があるから、規格非準拠になっちゃう。
26デフォルトの名無しさん (ワッチョイ ab15-ki2E)
2018/11/08(木) 22:02:06.26ID:WtJgli4G0 だから何? 違ったら笑うしかできない無能か
27デフォルトの名無しさん (アークセー Sxcd-8u3a)
2018/11/08(木) 22:55:19.89ID:nQ7J47/rx C89止まりのものです
私のような者が C11などの新しい規格を学ぶのによい書籍はありますか?
私のような者が C11などの新しい規格を学ぶのによい書籍はありますか?
28デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/08(木) 23:16:18.68ID:x4oYjs6S0 このスレは最近独り言が増えたのか?
オレもそうだがな
オレもそうだがな
30デフォルトの名無しさん (ワッチョイ 415e-p2zE)
2018/11/08(木) 23:28:43.81ID:6k9Hci0C0 >>29
私はC99で止まっていますが、最近はもっぱらPythonを使っているので困りません
私はC99で止まっていますが、最近はもっぱらPythonを使っているので困りません
31デフォルトの名無しさん (ワッチョイ 4be3-peA3)
2018/11/09(金) 05:43:42.12ID:1ixP0EQ90 pythonいいよな
yieldとかC標準にもほしい
yieldとかC標準にもほしい
32デフォルトの名無しさん (ワッチョイ 9312-L4Ec)
2018/11/09(金) 10:07:36.38ID:6cegpcYL0 cpythonのyield実装を見ればC言語に移植できるんじゃねえの
33デフォルトの名無しさん (アウアウエー Sa23-2eEn)
2018/11/09(金) 11:42:49.67ID:Sh6b3ug/a yieldって何につかうの?
34デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/09(金) 12:33:54.85ID:DHGOZxvaa 動き的にgets的な動きする。
表示したら即メモリ解放的な。
表示したら即メモリ解放的な。
35デフォルトの名無しさん (ドコグロ MMe5-Mdza)
2018/11/09(金) 12:41:29.53ID:GUqFOdkWM36デフォルトの名無しさん (ワッチョイ 31b3-ApEQ)
2018/11/09(金) 12:52:21.62ID:1VeVq06f0 yieldはいわばスタック情報の保存だから、setjmp、longjmpで出来そうな出来なさそうな?
37デフォルトの名無しさん (アウアウウー Sa05-ahuQ)
2018/11/09(金) 13:11:31.21ID:JsSTi+Gxa ん?thread?
38デフォルトの名無しさん (アウアウエー Sa23-2eEn)
2018/11/09(金) 13:52:10.49ID:Sh6b3ug/a 単にコンテキスト保存するだけだからまあ再現はできるよ
書き方としてイテレータとか欲しいのはわかるけど実現方法はどうでもいいわけじゃん
書き方としてイテレータとか欲しいのはわかるけど実現方法はどうでもいいわけじゃん
39デフォルトの名無しさん (ワッチョイ 4b23-ki2E)
2018/11/09(金) 14:11:15.88ID:lOb1tGzl0 yieldは便利で使い勝手がいーるど
40デフォルトの名無しさん (ワッチョイ 9164-30bX)
2018/11/09(金) 20:13:38.25ID:3ZHBVzZ50 POSIXの<errno.h>にある番号とBSDの<sysexits.h>で全然番号が違うのは理由があるのかな。
いままで<sysexits.h>に従って「許可がない」動作は77を返すものだと思ってたら
Linuxでは1を返すのでなぜだと思って調べたら<errno.h>では権限エラーは1。
嫌だなぁ。
いままで<sysexits.h>に従って「許可がない」動作は77を返すものだと思ってたら
Linuxでは1を返すのでなぜだと思って調べたら<errno.h>では権限エラーは1。
嫌だなぁ。
41デフォルトの名無しさん (ドコグロ MMe5-Mdza)
2018/11/09(金) 20:53:23.68ID:GUqFOdkWM 77とか1とかのリテラルで書くバカって今でもいるんだ…
42デフォルトの名無しさん (アウアウエー Sa23-2eEn)
2018/11/09(金) 23:18:17.74ID:Sh6b3ug/a POSIXで具体的な数値決めてたっけ?
43デフォルトの名無しさん (ワッチョイ db9f-ki2E)
2018/11/10(土) 05:46:23.69ID:PYYpj2JU0 >>40
<errno.h> の方はC言語でシステムコールしてエラーになった時の errno 変数の値で、
<sysexits.h> はプログラムが exit() 等で終わる時に使う値なので全く用途が違う。
<errno.h> の方はC言語でシステムコールしてエラーになった時の errno 変数の値で、
<sysexits.h> はプログラムが exit() 等で終わる時に使う値なので全く用途が違う。
44デフォルトの名無しさん (ワッチョイ 9164-30bX)
2018/11/10(土) 06:30:10.24ID:lBOHSSIo0 >>43
つまり<errno.h>で定義された値はユーザーからは見えないんだね。
つまり<errno.h>で定義された値はユーザーからは見えないんだね。
45デフォルトの名無しさん (ワッチョイ db9f-9t8X)
2018/11/10(土) 06:43:06.70ID:PYYpj2JU0 >>44
見えないというか、ただの数値なのでどこにでも使えないわけではないが、errnoの値をexit()で返す事は想定して作られていない。
見えないというか、ただの数値なのでどこにでも使えないわけではないが、errnoの値をexit()で返す事は想定して作られていない。
46デフォルトの名無しさん (ワッチョイ 4b23-ki2E)
2018/11/10(土) 11:37:20.64ID:lMF42kZL0 >>45
わりとerrnoを返してくる人多いけどね
わりとerrnoを返してくる人多いけどね
47デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/10(土) 11:58:28.71ID:4Oh2WWEl0 errno返してもらっても困る
48デフォルトの名無しさん (ワッチョイ f380-/quP)
2018/11/10(土) 17:42:25.30ID:16GnFLu/0 #defineマクロ定数はプリプロセッサで単純置換されるだけだからな
49デフォルトの名無しさん (アウアウウー Sa05-ahuQ)
2018/11/10(土) 18:12:43.61ID:JVjCprWqa50デフォルトの名無しさん (ワッチョイ 9164-30bX)
2018/11/10(土) 18:13:54.94ID:lBOHSSIo051デフォルトの名無しさん (アウアウウー Sa05-ahuQ)
2018/11/10(土) 18:26:46.25ID:JVjCprWqa そう。
52デフォルトの名無しさん (ワッチョイ 937f-nWRh)
2018/11/11(日) 12:27:27.91ID:2PA7tL2j0 struct S {
size_t len;
type-X buf[0];
};
という状況下で、
size_t const len = 500;
struct S* const p = (struct S*)malloc(sizeof(struct S) + sizeof(type-X)*len);
p->len = len;
p->buf = (type-X*)((size_t)p + sizeof(struct S));
という処理を偶に見かけますが、これだと末尾パディングの影響でbuf[1]のアドレスがtype-Xのアライメントに沿っていない可能性があるので、不正な気がします
具体的には
struct S {
size_t len;
type-X* buf;
};
として、
size_t const len = 500;
size_t const padding_for_align_x = alignof(type-X)*(sizeof(struct S)%alignof(type-X) == 0 ? 0 : 1);
struct S* const p = (struct S*)malloc(sizeof(struct S) + padding_for_align_x + sizeof(type-X)*len);
p->len = len;
p->buf = (type-X*)((size_t)p + sizeof(struct S) + padding_for_align_x);
...などとしないとアライメント違反になりそうな気がするのですが、この認識は正しいでしょうか
size_t len;
type-X buf[0];
};
という状況下で、
size_t const len = 500;
struct S* const p = (struct S*)malloc(sizeof(struct S) + sizeof(type-X)*len);
p->len = len;
p->buf = (type-X*)((size_t)p + sizeof(struct S));
という処理を偶に見かけますが、これだと末尾パディングの影響でbuf[1]のアドレスがtype-Xのアライメントに沿っていない可能性があるので、不正な気がします
具体的には
struct S {
size_t len;
type-X* buf;
};
として、
size_t const len = 500;
size_t const padding_for_align_x = alignof(type-X)*(sizeof(struct S)%alignof(type-X) == 0 ? 0 : 1);
struct S* const p = (struct S*)malloc(sizeof(struct S) + padding_for_align_x + sizeof(type-X)*len);
p->len = len;
p->buf = (type-X*)((size_t)p + sizeof(struct S) + padding_for_align_x);
...などとしないとアライメント違反になりそうな気がするのですが、この認識は正しいでしょうか
53デフォルトの名無しさん (ワッチョイ 937f-nWRh)
2018/11/11(日) 12:57:16.34ID:2PA7tL2j054デフォルトの名無しさん (ワッチョイ 9164-30bX)
2018/11/11(日) 14:07:31.98ID:PRctJ18Z055デフォルトの名無しさん (ワッチョイ 4b23-ki2E)
2018/11/11(日) 15:17:31.04ID:0RasjQan056デフォルトの名無しさん (ワッチョイ 9164-30bX)
2018/11/11(日) 16:17:47.42ID:PRctJ18Z0 >>55
まあBSDでプログラミングしたことないと あんまり知りえないと思うわ。
だいたいPOSIXで定められてる訳じゃないから 知っておくべきなのはBSDプログラマくらい。
ただLinuxプログラムのエラーコード周りはなぜか非統一的なんだよね。
GNUコーディング規約で事細かに決められてそうなものだけどねw
apt(1)なんて権限エラーに100返すんだぜ?
まあBSDでプログラミングしたことないと あんまり知りえないと思うわ。
だいたいPOSIXで定められてる訳じゃないから 知っておくべきなのはBSDプログラマくらい。
ただLinuxプログラムのエラーコード周りはなぜか非統一的なんだよね。
GNUコーディング規約で事細かに決められてそうなものだけどねw
apt(1)なんて権限エラーに100返すんだぜ?
57デフォルトの名無しさん (ワッチョイ 9312-L4Ec)
2018/11/11(日) 16:41:45.09ID:PCIE9alw0 >>52
『MSDNこそC++である』という格言があるように、構造体の末尾の配列は不定長に出来ます
構造体内の可変長配列
ttps://msdn.microsoft.com/ja-jp/library/b6fae073(v=vs.120).aspx
『MSDNこそC++である』という格言があるように、構造体の末尾の配列は不定長に出来ます
構造体内の可変長配列
ttps://msdn.microsoft.com/ja-jp/library/b6fae073(v=vs.120).aspx
58デフォルトの名無しさん (ワッチョイ 497d-ki2E)
2018/11/11(日) 18:01:07.65ID:EYHizhRi0 VLAとは違うんだよな
そのページのサンプルに限っては不完全型配列の直前にサイズ情報があって確かに可変長だが
配列そのものがサイズ情報を含むのではないので、不定長とでもいうべきものだ
そのページのサンプルに限っては不完全型配列の直前にサイズ情報があって確かに可変長だが
配列そのものがサイズ情報を含むのではないので、不定長とでもいうべきものだ
59デフォルトの名無しさん (ワッチョイ 9164-TRt+)
2018/11/11(日) 18:07:53.58ID:PRctJ18Z0 どうでもいいけど そのURLの書式はなんだ?
URLパラメータってそんな位置に置けたっけ。
URLパラメータってそんな位置に置けたっけ。
60デフォルトの名無しさん (ワッチョイ f380-/quP)
2018/11/11(日) 18:21:19.83ID:1ROtIrLE0 先頭さえ確定できれば後ろなんてどうでも良い
さすがのC言語さん
さすがのC言語さん
61デフォルトの名無しさん (ワッチョイ 9321-A2K7)
2018/11/11(日) 21:36:09.88ID:1MIvJQ9R0 >>57
その格言は初めて聞きましたw
その方法だとアライメント違反になるかならないかが気になっていたのですが、
* 末尾のbuffer[0]でその型のアライメント以上のアライメントを構造体に強いることができる(拡張)
* 末尾のbuffer[1]の場合は当然構造体にそのアライメント以上のアライメントを強いることができる(c89)
* 末尾のbuffer[]でも同様(c99での仕様)
となり、全パターンでbuffer[i]へのアクセス時にアライメント違反にならないので、
ポインタメンバにしてアライメント気にしてmallocする必要ないのかー、これでいいのかーと解決した次第です
>>58
英語だとflexible arrayでした
その格言は初めて聞きましたw
その方法だとアライメント違反になるかならないかが気になっていたのですが、
* 末尾のbuffer[0]でその型のアライメント以上のアライメントを構造体に強いることができる(拡張)
* 末尾のbuffer[1]の場合は当然構造体にそのアライメント以上のアライメントを強いることができる(c89)
* 末尾のbuffer[]でも同様(c99での仕様)
となり、全パターンでbuffer[i]へのアクセス時にアライメント違反にならないので、
ポインタメンバにしてアライメント気にしてmallocする必要ないのかー、これでいいのかーと解決した次第です
>>58
英語だとflexible arrayでした
62デフォルトの名無しさん (アウアウウー Sa05-Vzv6)
2018/11/11(日) 22:09:10.99ID:3Du2sMqla63デフォルトの名無しさん (ワッチョイ db9f-ki2E)
2018/11/11(日) 22:26:25.11ID:0F8Q4Ddx064デフォルトの名無しさん (ワッチョイ 9164-TRt+)
2018/11/12(月) 13:20:45.59ID:JkRQG90v0 もうちょっと皆がリターンコードについて考えてくれたらいいね。
65デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/12(月) 13:26:58.93ID:yW6s8Lj00 コマンドの戻り値って、皆さんどの様に活用されてますか?
成功か失敗か、それが分かれば十分な気はしますけど
成功か失敗か、それが分かれば十分な気はしますけど
66デフォルトの名無しさん (ワッチョイ 9164-TRt+)
2018/11/12(月) 13:50:25.07ID:JkRQG90v0 >>65
例えば同じ「失敗」でも何が原因なのか分かったほうが問題に対処しやすくない?
ファイルが存在しないのか はたまたファイルが現状の権限では読みとれないのか。
もちろんエラーメッセージを見てもいいけど。
あと,終了ステータスを見ないと成功失敗が分からない場合がある。
例えばdiff(1)ユーティリティーなんかは「1」という(一見失敗してるような)終了ステータスに
「(コマンド自体は成功してるが)不一致が発見された」という意味を割り当ててる。
fsck(1)ユーティリティーはもっと複雑。
まあ知ってるに越したことはないし<sysexit.h>はPOSIX標準ではないにせよ,
Unixプログラミングをする場合は積極的に利用してもいいかも。
例えば同じ「失敗」でも何が原因なのか分かったほうが問題に対処しやすくない?
ファイルが存在しないのか はたまたファイルが現状の権限では読みとれないのか。
もちろんエラーメッセージを見てもいいけど。
あと,終了ステータスを見ないと成功失敗が分からない場合がある。
例えばdiff(1)ユーティリティーなんかは「1」という(一見失敗してるような)終了ステータスに
「(コマンド自体は成功してるが)不一致が発見された」という意味を割り当ててる。
fsck(1)ユーティリティーはもっと複雑。
まあ知ってるに越したことはないし<sysexit.h>はPOSIX標準ではないにせよ,
Unixプログラミングをする場合は積極的に利用してもいいかも。
67デフォルトの名無しさん (ワッチョイ 2b81-ki2E)
2018/11/12(月) 14:11:20.80ID:yW6s8Lj00 イヤ、使い方の可能性としてそう言うものがあるくらいは知っている
実際に使っている人がいたら、どういう使い方をしているかを聞きたいんだ
実際に使っている人がいたら、どういう使い方をしているかを聞きたいんだ
68デフォルトの名無しさん (ワッチョイ 9164-TRt+)
2018/11/12(月) 16:42:56.85ID:JkRQG90v0 勘違いしてましたわ
俺の知ってる限りじゃシェルスクリプトでは多用されてるがCではどうだろうね。あまり見掛けない。
俺の知ってる限りじゃシェルスクリプトでは多用されてるがCではどうだろうね。あまり見掛けない。
69デフォルトの名無しさん (アウアウウー Sa05-2eEn)
2018/11/12(月) 17:16:29.53ID:7RdsKszja diffでちょっと迷うくらいだよな。
70デフォルトの名無しさん (ワッチョイ 56be-JwVn)
2018/11/18(日) 22:01:33.04ID:Fz4U8sel0 #define elif(e) else if (e)
みたいにして
if (...) {
...
} elif (...) {
...
} else {
...
}
↑こういう感じにするのってやっちゃマズいのかな。
個人的にelifキーワードがある言語に慣れてるんでこうやってて
現状特にエラーに遭遇したことはないんだけど
OSSのソースコードとか個人が公開してるソースコード見ても
こういうことやってないんだよね。
みたいにして
if (...) {
...
} elif (...) {
...
} else {
...
}
↑こういう感じにするのってやっちゃマズいのかな。
個人的にelifキーワードがある言語に慣れてるんでこうやってて
現状特にエラーに遭遇したことはないんだけど
OSSのソースコードとか個人が公開してるソースコード見ても
こういうことやってないんだよね。
71デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/18(日) 22:14:05.51ID:Eond7dK60 >>70
やめとけ
メリットが1ミリもないから誰もやらない。
善し悪しはさておき、C言語での判断基準はほぼ「実行性能」であって、
else if と書けばいいだけの所をいちいちマクロにする馬鹿なんて世界中に誰もいないだけ。
というか、そのレベルで慣れられないのなら、elif言語だけ使っておけ。
やめとけ
メリットが1ミリもないから誰もやらない。
善し悪しはさておき、C言語での判断基準はほぼ「実行性能」であって、
else if と書けばいいだけの所をいちいちマクロにする馬鹿なんて世界中に誰もいないだけ。
というか、そのレベルで慣れられないのなら、elif言語だけ使っておけ。
72デフォルトの名無しさん (ワッチョイ ba80-N102)
2018/11/18(日) 22:24:21.65ID:KTJRdzRs0 #define { begin
みたいなことを本気でやる奴がいたとはw
みたいなことを本気でやる奴がいたとはw
73デフォルトの名無しさん (ワッチョイ ba80-N102)
2018/11/18(日) 22:26:08.72ID:KTJRdzRs0 #define begin {
逆だったわw
逆だったわw
74さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdea-/fpg)
2018/11/18(日) 22:35:31.43ID:ZI/kDlHTd ソースコードを静的解析する関係で、文法を強引に変えるような変態な前処理は良くないらしい。
75デフォルトの名無しさん (ワッチョイ edf2-maOp)
2018/11/18(日) 22:39:49.79ID:HA6us6PZ0 世の中の静的解析ツールは当然プリプロセッサ適用後の状態で解析するわけで
76デフォルトの名無しさん (アウアウウー Sa91-ZAHG)
2018/11/18(日) 22:42:50.43ID:gSv28L1Ba typedefも避けるという流儀はあるからね
まあ気持ちはわかる
むしろGNU拡張のtypeofはアリ
まあ気持ちはわかる
むしろGNU拡張のtypeofはアリ
77デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/18(日) 22:45:11.55ID:Eond7dK6078デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/18(日) 22:47:48.36ID:Eond7dK6079さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdea-/fpg)
2018/11/18(日) 23:14:59.59ID:ZI/kDlHTd 国際会議で誰も知らない方言を話して良い訳ない。オープンなソースコードは世界中の人が見るんだから。
80デフォルトの名無しさん (ワッチョイ 4a21-JwVn)
2018/11/18(日) 23:19:46.27ID:we8vMVw10 >>78
多分linuxカーネルの流儀じゃないかな
struct/enum/unionとかの省略を目的としたtypedefは行わない
opaque-type/関数ポインタとかの必然性が無い限り対象は明示するっていう戦略
多分linuxカーネルの流儀じゃないかな
struct/enum/unionとかの省略を目的としたtypedefは行わない
opaque-type/関数ポインタとかの必然性が無い限り対象は明示するっていう戦略
81デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/18(日) 23:37:43.07ID:Eond7dK60 >>80
> struct/enum/unionとかの省略を目的としたtypedefは行わない
こんなのは当たり前だ。(linuxカーネルに限らず)
そもそも「タイプ数をケチるだけの為に何かする」という文化は最近のWeb系馬鹿言語だけであって、Cにはない。
当然、else if を elif にしたがる奴もいない。
「腕のいい奴のコードは短い」を勘違いしてる馬鹿共がやたら「タイプ数」にこだわってるだけだ。
だいたい、structをタイプしたくなければC++コンパイラ使えば済むし。
> struct/enum/unionとかの省略を目的としたtypedefは行わない
こんなのは当たり前だ。(linuxカーネルに限らず)
そもそも「タイプ数をケチるだけの為に何かする」という文化は最近のWeb系馬鹿言語だけであって、Cにはない。
当然、else if を elif にしたがる奴もいない。
「腕のいい奴のコードは短い」を勘違いしてる馬鹿共がやたら「タイプ数」にこだわってるだけだ。
だいたい、structをタイプしたくなければC++コンパイラ使えば済むし。
82デフォルトの名無しさん (ワッチョイ ad98-nUmj)
2018/11/19(月) 00:20:04.42ID:DaKcZAfU0 ここで聞いていい内容なのかわからないのですが
gccを4.8.1から8.1.0に変えたらwinAPIを使用して図形を表示するプログラムで
図形が表示されずウィンドウだけ表示されるようになってしまった
これは、c言語,gcc,winAPIどれを疑えばいいのでしょうか?
MingW-W64-buildsというところから8.1.0のgccはダウンロードした
gccを4.8.1から8.1.0に変えたらwinAPIを使用して図形を表示するプログラムで
図形が表示されずウィンドウだけ表示されるようになってしまった
これは、c言語,gcc,winAPIどれを疑えばいいのでしょうか?
MingW-W64-buildsというところから8.1.0のgccはダウンロードした
83さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdea-/fpg)
2018/11/19(月) 00:24:07.93ID:4H6R9aF+d 図形の描画ルーチンを貼れ。
84デフォルトの名無しさん (ワッチョイ 4a21-JwVn)
2018/11/19(月) 00:25:09.76ID:+eaeK27e0 >>81
なぜ唐突にweb系云々に話が飛ぶのか理解できないのだが、
typedef struct {...} S;
typedef enum {...} E;
void f(S* s, E e);
上のような書き方、結構(昔から)見かける気がするけど
なぜ唐突にweb系云々に話が飛ぶのか理解できないのだが、
typedef struct {...} S;
typedef enum {...} E;
void f(S* s, E e);
上のような書き方、結構(昔から)見かける気がするけど
85デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/19(月) 00:28:01.74ID:1op4u+BL0 >>82
お前の頭、だな
gcc4.8.1で行けるのならそれでやればいい話。
それを8.1.0に変えただけで問題が発生するのなら、当然そこに問題がある。
そしてそもそも詳しいことはそのソースを作った奴に聞け。
お前の頭、だな
gcc4.8.1で行けるのならそれでやればいい話。
それを8.1.0に変えただけで問題が発生するのなら、当然そこに問題がある。
そしてそもそも詳しいことはそのソースを作った奴に聞け。
86デフォルトの名無しさん (ワッチョイ 4a21-JwVn)
2018/11/19(月) 00:30:44.00ID:+eaeK27e0 というかこれ以外だとtypedefを使うべき所にしか使わないはずなので、
cだろうがc++だろうがtypedefの使用量に差が出るとは思えない
ああ、実は>>78ってc++ならusing使うべきとかそういう話?
cだろうがc++だろうがtypedefの使用量に差が出るとは思えない
ああ、実は>>78ってc++ならusing使うべきとかそういう話?
87デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/19(月) 00:46:59.49ID:1op4u+BL0 >>84
> 上のような書き方、結構(昔から)見かける気がするけど
個人的には疑問があるが、おそらく実際はそちらの方が正しいのだろう。
C++で対策された=C言語のそこがウザイと禿が判定した、ということだから。
> なぜ唐突にweb系云々に話が飛ぶのか理解できないのだが、
ググレば分かるが、その辺の言語では「こちらの方が短いから良い」といっているページは結構見かける。
C言語でこれを言っている奴は皆無だ。
>>86
> ああ、実は>>78ってc++ならusing使うべきとかそういう話?
いや、そうじゃない。そちらの取り方で問題ないし、君の typedef の使い方は正しいと思う。
typedefって結局「型に別名を与える」為の物で、
型が自由に定義出来るようになったC++ではほぼ要らないはず、って話。
> 上のような書き方、結構(昔から)見かける気がするけど
個人的には疑問があるが、おそらく実際はそちらの方が正しいのだろう。
C++で対策された=C言語のそこがウザイと禿が判定した、ということだから。
> なぜ唐突にweb系云々に話が飛ぶのか理解できないのだが、
ググレば分かるが、その辺の言語では「こちらの方が短いから良い」といっているページは結構見かける。
C言語でこれを言っている奴は皆無だ。
>>86
> ああ、実は>>78ってc++ならusing使うべきとかそういう話?
いや、そうじゃない。そちらの取り方で問題ないし、君の typedef の使い方は正しいと思う。
typedefって結局「型に別名を与える」為の物で、
型が自由に定義出来るようになったC++ではほぼ要らないはず、って話。
88デフォルトの名無しさん (ワッチョイ ad98-nUmj)
2018/11/19(月) 01:03:17.87ID:DaKcZAfU0 >>85
そうか...仕様変更、バグ、なにか他にも入れるものがあるとか分かるなら聞きたかったんだが
仕方ない。ありがとう
4.8.1だと古くなってるかなと思って思い切って8.1.0で試してみてるんだけど戻すか
そうか...仕様変更、バグ、なにか他にも入れるものがあるとか分かるなら聞きたかったんだが
仕方ない。ありがとう
4.8.1だと古くなってるかなと思って思い切って8.1.0で試してみてるんだけど戻すか
89デフォルトの名無しさん (ブーイモ MMea-N102)
2018/11/19(月) 01:03:24.61ID:CKJwSX5SM Web系言語界隈は条件演算子をif文の簡略表記()だの省略形()だの言ってる池沼も多いからなぁw
90デフォルトの名無しさん (ワッチョイ 054f-CYUw)
2018/11/19(月) 01:16:02.93ID:1op4u+BL0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 台湾有事での集団的自衛権行使に賛成48%、「反対」が44.2% ★2 [♪♪♪★]
- 【淡路島】88歳男が好意を理由に60歳女性宅へ侵入か 「下の毛がほしい」不適切メモを残す ストーカー容疑で再逮捕 洲本市 [nita★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★13 [BFU★]
- なぜ女性トイレには行列ができる? 全国1092カ所を調べた61歳の疑問、国を動かす [♪♪♪★]
- 【NHK】受信料の未払い督促を10倍に強化… 支払い拒否が続くと民事手続きも 「カーナビも受信料いただきます」方針 [冬月記者★]
- 『ドラゴンボール』人気キャラ投票、現在の順位発表 意外な人物がTOP10入り [ひかり★]
- 日本人の73%「中国が嫌い」日本の右傾化止まらない [165981677]
- 台湾兄さん、この時世に日本旅行支持で勢い。なのにジャップはバットで殴打… [152212454]
- 高市早苗「外交交渉でマウント取れる服、無理をしてでも買わなくてはいかんかもなぁ。」ネトウヨ向けにアピールwwwwwwwwwww [834922174]
- 3時までに着いたレス×100m走る
- 日本人の48%覚悟完了… [819729701]
- 【実況】博衣こよりのえちえちゼルダの伝説 ムジュラの仮面🧪 ★4
