C言語なら俺に聞け(入門編)Part 116
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/06/14(金) 20:22:05.73★前スレ
C言語なら俺に聞け(入門編)Part 115
http://toro.2ch.net/test/read.cgi/tech/1368444993/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/C/C++の宿題片付けます 165代目
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0422デフォルトの名無しさん
2013/06/30(日) 07:45:43.51煽って回答を得ようとするクソ質問者
この板にはその手法を常用するクソコテが粘着してるので通用しない。
本当か?
手元のISO/IEC9899:1999 7.19.6.2.12 には書式指定子に %c のunsigned charの場合なるものは存在しないが?
頭沸いていないか?それとも自治スレで完敗したのでまた荒しに来たのか?
巣ではお前の回答を今か今かと待っているぞ?はやく巣に戻れ
0425デフォルトの名無しさん
2013/06/30(日) 08:40:02.39自治スレ? そんなクソスレ知らねーな
おそらくお前が持ってるのは違法アップロードされた偽物なんだろ。
正規版にはunsigned charへの変換指定が書いてある
0426デフォルトの名無しさん
2013/06/30(日) 09:11:11.21これはホットラインセンターに通報した方がいいって事?
0427デフォルトの名無しさん
2013/06/30(日) 09:22:16.90本物にはポータブルじゃないと明記されてるのに。
偽規格書 ワロタ WWWW
0428デフォルトの名無しさん
2013/06/30(日) 10:31:49.60なんか出ないんですが。
0429デフォルトの名無しさん
2013/06/30(日) 10:33:58.430430408
2013/06/30(日) 10:41:30.39ありがとうございました。
0431428
2013/06/30(日) 10:49:26.64typedefしても警告が出ませんでした。
gcc-4.7.2
>gcc -Wall test.c
>else: 100
typedef enum {
FALSE = 0, TRUE = 1,
} BOOLEAN;
int main(void) {
BOOLEAN flag;
flag = 100;
if (flag == TRUE) {
printf("true: %d", flag);
else if (flag == FALSE) {
printf("false: %d", flag);
} else {
printf("else: %d", flag);
}
return 0;
}
0432デフォルトの名無しさん
2013/06/30(日) 10:54:30.23int main(void)
{
enum { x };
x = 1;
return 0;
}
0433デフォルトの名無しさん
2013/06/30(日) 10:54:42.380434デフォルトの名無しさん
2013/06/30(日) 11:08:06.93enumはchar, signed integer型又はunsigned integer型と互換って正規版の規格書には書いてある。
偽規格書になんて書いてあるかは知らない WWWW
0435デフォルトの名無しさん
2013/06/30(日) 11:15:35.67定数への代入ではなくて、やっぱりenum変数への数値代入です。
>>433-434
え?互換なんですか?!と思って、sizeofしてみたら4バイトありました。ありがとうございました。
typedef enum TAG_BOOLEAN { FALSE = 0, TRUE = 1 } BOOLEAN;
int main(void) {
BOOLEAN flag = 10;
printf("flag:%d sizeof(%d)", flag, sizeof(flag));
return 0;
}
>flag:10 sizeof(4)
0436デフォルトの名無しさん
2013/06/30(日) 22:09:44.39レス代行をお願いしているため、レスが遅くなってすみません。
普遍的な方法は無く、個々にソースを当たるしかないと言うのを理解しました。
ありがとうございます。
まっ正確にはTC2なんだけどね.
でも,
>正規版にはunsigned charへの変換指定が書いてある
真っ赤な嘘ですねえ,だって,JIS 検索 http://www.jisc.go.jp/app/pager?id=1267490 で JIS X3010 7.19.6.2 を検索しても unsigned char 用の書式指定子なんて見つかんないですからね
お前さんは scanf() 系のどの書式指定子を unsigned char 用だと思ったの?
>>427
ISO/IEC 9899:1999 6.2.2.5
If the declaration of an identifier for an object has file scope and no storage-class specifier,
its linkage is external.
変数でファイルスコープで extern が書いてなかったら,それは外部リンケージ扱いだよ,ってかいてあるしね.それと ISO/IEC 9899:1999 6.9.2.2 を合わせて考えると extern なんて要らない子なんじゃないかな‥‥
少なくともリンカ次第で C の言語仕様書に書かれる話じゃないし.あと,あくまで C の話ね,C++ じゃないよ.
>>426
そんなもんが pdf でほいほい転がってるの?
>>427
>本物にはポータブルじゃないと明記されてるのに。
該当箇所を引用してみてよ.それで当否を客観的に判断できるでしょ,JIS X3010 でもいいからさー,それとも引用できないほど自信が無いの?
引用する際にはちゃんと引用元を明記しないと,著作権法第48条の3 に違反し,同法122条によれば50万以下の罰金だそう,あと同法123条により親告罪じゃないから,場合によっては起訴されるかもしれないよ.
0438デフォルトの名無しさん
2013/06/30(日) 23:12:52.26全部まとめてアマゾンギフト10万円で教えてやるよ。 WWWW
該当箇所を引用してみてよ.それで当否を客観的に判断できるでしょ,JIS X3010 でもいいからさー,それとも引用できないほど自信が無いの?
0440デフォルトの名無しさん
2013/06/30(日) 23:29:12.03全部まとめてアマゾンギフト10万円で教えてやるよ。 WWWW
騙し取られるのが心配なら、詐欺った場合は刑事事件で告訴すりゃ良いだろ。WWWW
該当箇所を引用してみてよ.それで当否を客観的に判断できるでしょ,JIS X3010 でもいいからさー,それとも引用できないほど自信が無いの?
0442デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN全部まとめてアマゾンギフト10万円で教えてやるよ。 WWWW
騙し取られるのが心配なら、詐欺った場合は刑事事件で告訴すりゃ良いだろ。WWWW
該当箇所を引用してみてよ.それで当否を客観的に判断できるでしょ,JIS X3010 でもいいからさー,それとも引用できないほど自信が無いの?
あと
>騙し取られるのが心配なら、詐欺った場合は刑事事件で告訴すりゃ良いだろ。
意味不明。大丈夫?豆腐の角にぶつけてみるといいよ
0444デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN自信があるから教授料を要求してるわけだ。WWWW
教授料の支払いを約束するなら、先に>>416を教えてやってもいいぞ。 WWWW
0445デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN>>343に反論してみろ WWWW
0446デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANごめんね: keyword:Qzでアボーンしていたので見てなかった
ふむ、ひとつの makefile で複数のバイナリ(サーバープログラムとクライアントプログラム、とか)を生成するとき、
特定のバイナリは、くだんのヘッダは読むけれどもそのヘッダにimplyされている全機能や array[] を使うとは限らない、ということはありうるわね
でも手元の gcc では、使わなければ int array[10000] であっても増えないね
ideone ではこうだった
http://ideone.com/Digq4t
http://ideone.com/aYFG9w
>int array[10000];
>では、使う使わないに関わらず領域が確保されてしまう。
処理系依存じゃないの?
処理系依存にうるさい人が処理系依存の事例を挙げるなんてダブルスタンダードもいいとこだね
>>445
回答しといたよ
これは授業料なしで引用していただける資格があると思うよ
0448デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN手元の cygwin では、-static を付けても dll まではリンクしてくれないから、例示としては不徹底だけれども http://codepad.org/DUJxHDoV
>定義のみで使われない変数や関数はコンパイル時に削除される
そういう賢い処理系もあるようだね。シェアードライブラリのヘッダだったらその中の int array[] とかはどうなるの?
>>445
回答しといたよ
これは授業料なしで引用していただける資格があると思うよ
おっと肝心なところがぬけてたねhttp://codepad.org/wHHXCR5m
なんだか我ながら連投連投で必死だね
こんだけ必死なんだから情けを恵んでやってもいいんじゃないかな >>445
0452デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN落第。先に教授料10万円はらいな。 WWWW
ideone.com/P9UkTE
ideone.com/TJH0fO
しかし、lsでプログラムのサイズ調べて、ドヤ顔するとは大笑い海水浴場だ。朝から腹痛てー WWWW
渾身の自爆ギャグに免じてこのレス自身は無料レクチャーにしてやるよ。 WWWW
>>448
アホは引っ込んで炉。仮定義オブジェクトの話してるんだから、コンパイラが削除するわけねーだろ。
リンカーなら出来なくはないが、参照され無くても存在する事に意味があるオブジェクトもあるので、
そういう機能が有ったとしてもオプショナルだ。
>>450-451
お前バカなんだから、朝から無駄なエネルギー消費すんな。 WWWW
>lsでプログラムのサイズ調べて、ドヤ顔するとは大笑い海水浴場だ
たしかに未初期化領域は BSS 領域に展開されるので実行ファイルのサイズをみてどうこうというというのはギャグだねえ
やっぱり >>343 は認めなくちゃいけないね
>お前バカなんだから、朝から無駄なエネルギー消費すんな。
ほんとだねえ、今日一日は交通事故に注意しよう‥‥‥
0454デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANうんそうだね、仮定義をコンパイラが削除するわけねーな
その続きがイミフだけど、仮定義って何だかご存知?
0455デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそれじゃ、教授料10万円相当は先払い。
後払い権得られるチャンスだったのに残念だったな。 WWWW
>>454
仮定義オブジェクトをコンパイラが削除するとか言い出す初心者にはわからなくても無理はない。WWWW
レクチャーしてやろうか?有料で WWWW
0456454
2013/07/01(月) NY:AN:NY.ANキョージュさん、俺の言ったことよく読んでね
0457デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN>その続きがイミフだけど、
イミフなのはお前が低脳だから。レクチャーしてやろうか? 有料で WWW
> 仮定義って何だかご存知?
知ってるけど、それがなにか?WWWW
0458デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANイミフが意味不明だったんなら、もっとはっきり言ってやる
仮定義はリンカも削除はしねえんだよ、出来なくないんじゃない
0459デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそういう機能を持つリンカー実在するけど、それが何か? WWWW
0460デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN環境依存スレへどうぞ
0461デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANつまり、>>452は全てのリンカーがそういう機能を持つという主張と誤読したのか WWWW
恐るべき低読解力 WWWW
0462デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0463デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN低脳はお前だよ
すごい誤読w
0464デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN>>460はお前じゃないという主張か。それなら>>459に戻る事になって
>仮定義はリンカも削除はしねえんだよ、出来なくないんじゃない
仮定義オブジェクトを削除する機能を持つリンカー実在するけど。WWWW
0465デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0466デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそういう話になるとスレ違いだっつーの
頭悪いなあ
0467デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANいやどうも前頭葉に欠陥があるアホが一匹紛れ込んでるようで
0468デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANアホが二匹いるから荒れる
0469デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANお前一匹だけだよ馬鹿は
0470デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN>仮定義はリンカも削除はしねえんだよ、出来なくないんじゃない
これがスレ違いでは無く、
>仮定義オブジェクトを削除する機能を持つリンカー実在するけど。WWWW
これがスレ違い? バカの思考回路はまったくわからない WWWW
やっぱ、バカは駆逐すべきだな WWWW
0471デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANうん、スレ違い
それは環境依存の話
専用のスレがあるからそこに行って
0472デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそんなら「イミフ」じゃなくて「スレ違い」だろ。 WWWW
バカの後知恵はやっぱりバカ WWWW
0473デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN今後 198ぽ と名乗ってくれ
0474デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN「イミフ」なんて言ってませんよ
人違いでは?
0476デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN引っ込むか引っ込まないかは俺が決める事
お前に言われる筋合いはない
0477デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANお前にたいして、引っ込んで炉とか死んでしまえとか駆逐してやるとか、罵る権利はオレの固有の権利
死んでしまえゴミクズ WWWW
0478デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
0479デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANこりゃいい
0480デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANこのようにIDなどなくても自分であぼ〜ん出来ます
0481デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0482デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANキチガイの発言を手であぼ〜んしてるだけだからな
0483デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0484デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0485デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANやっぱり頭おかしいな
0486デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANあぼーんされる→もはやレスを返す価値もない
0487デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN反論できなくて悔し紛れに勝利宣言して逃げてるのと同じように見えるわ。
0488デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN死んでしまえゴミクズ WWWW
0489デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0490デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0491デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0492デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN人の事を馬鹿呼ばわりする位しか出来ない
いい線いってたと思ったんだけど勘違いか?じゃ、>>343 回答を訂正するね
>extern int array[10000];
>こういう定義がふくまれるヘッダーファイル
ってことは、少なくとも一つどこかに実体を定義しているんだね。なお、extern だから宣言だね
>arrayを使っている(定義している)モジュールをリンクしなければarrayの領域は確保されないが、
>int array[10000];
>では、使う使わないに関わらず領域が確保されてしまう。
そりゃそうだがそのarray[10000] 含みのヘッダをインクルードするんだから
array[10000] を実質的に定義しているモジュールもいずれはリンクするんでしょう?
extern の有無に関わらず、その二つかそれ以上のモジュールで共用する array[] が一つ確保されるんだから問題ないんじゃないの?
え?array[10000] を定義しているモジュールをリンクしないの?そのヘッダをインクルードする .c ファイルが一つだけ?それってなんの意味があるの?
二箇所以上のところから参照されるからこそ、共通部分ヘッダとして切り分けて分割コンパイルするわけでしょ?
一つの *.c ファイルしかインクルードしないヘッダに意味はないし、そこで領域を無駄に確保するとかいわれてもねえ‥‥その array[10000] は .c に書くのが常識よね
同じ阿呆なら踊れ、踊りまくれ!!
>参照され無くても存在する事に意味があるオブジェクトもある
参照されなくても、というのはちょっと言いすぎだとおもうけど、volatile を付けたくなるやつが雰囲気似ているよね、まだまじめに使ったことは一度もないけれども
荒れているようにみえて結構たのしいんですけど
0497デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANバカをバカと罵って何が悪い。WWWW
今朝の自爆ギャグには感動したので、まとめてみた WWWW
www54.atwiki.jp/qzaw55cn4c/pages/16.html
0498デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANwindows.h
はい、論破 WWWW
>>495
> 参照されなくても、というのはちょっと言いすぎだとおもうけど、volatile を付けたくなるやつが雰囲気似ているよね、まだまじめに使ったことは一度もないけれども
全然違う。宿題コーダーには永遠に縁のないプログラミングテクニックだから知らんでもいい。WWWW
>windows.h はい、論破 WWWW
インポートライブラリ‥‥‥
0500デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0501デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANちゃんとmutex使わないとやばい
0502デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANまだ足掻くのか? まとめるぞ WWWW
単一のヘッダーに複数のオブジェクトモジュールの宣言をまとめて記述する事は当たり前に行われている。
しかし、lsで調べるという発想には唯々、笑うばかりだ、あー腹痛てー
0503デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN動画にしてYouTubeにアップしてくれ
volatile だけじゃだめね、消えない呪文にすぎないから
>>500
全然、自信たっぷりじゃないと思うんだけれど‥‥
windows.h に仮定義が見当たらないのでちょっと困ってる
>>502
>一のヘッダーに複数のオブジェクトモジュールの宣言をまとめて記述する事
すりかえないでね。
今言及しているのは一つのオブジェクトモジュールでしか使用されない宣言をヘッダに追い出していること
*.lib や *.dll 用のヘッダでリンクないしはダイナミックリンクしたときに実体が増殖するものがあるの?
>lsで調べるという発想
たしかにどーかしてた、これは末代までの恥
0505デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN相手した俺がバカだった
0506デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANすり替えてねーぞ
複数のオブジェクトモジュールの宣言を一つのヘッダーファイルにまとめる事は常識
>>343は、その中の一つのオブジェクトモジュールがexternな変数を公開しているケースを指摘している。
windows.hはlsでファイルサイズ調べるような低脳だから、一つのヘッダーファイルにまとめるという常識がないと予想して例示したに過ぎない。 WWWW
いや、すりかえてるね。
windows.h に仮に仮定義があったとして、そうすると、windows.h がその宣言をとりまとめているオブジェクトモジュール(kernel32.dll, user32.dll, gdi32.dll) にその仮定義の実体があるんだよね
そのとき、windows.h の仮定義により、(ダイナミック)リンクした結果、その仮定義の実体が増殖するの?
>>343 は増殖すると主張しているように見えるんだけど。
>複数のオブジェクトモジュールの宣言を一つのヘッダーファイルにまとめる事は常識
で、そんなときに仮定義を使用してもその仮定義により共用される領域が一つつくられるだけで問題ないよね。
複数の *.c のヘッダを一つの *.h にまとめて書く状況において、リンクした結果仮定義を使用して「無駄な領域」が生成される事例があるのなら、例示してみてよ
0508デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANマジで入院してくれ
そのうちリアルで事件でも起こしそうな雰囲気
0509デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANほらよ、キチ外。まだ恥晒し続けるのか? WWWW
お前はヘボでこの板の最下層だって事を理解しろよ。 WWWW
w.c:
#include <windows.h>
int main(){ return 0;}
objidl.hをカレントディレクトリにコピーし、
objidl.hのEXTERN_C const IIDをなんでもいいけど、例えば
EXTERN_C const IID IID_IMarshal;を
const IID IID_IMarshal;に変更
cl -I. w.c /link /opt:noref /map
w.mapには
0003:00001ef0 IID_IMarshal 000000014000def0 <common>
と領域が確保されたことが出力されている
さっきの変更を戻し再コンパイルすれば
w.mapには当然のことながらIID_IMarshalのエントリは無い。
0510デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN>>497のWikiに是非まとめといてくれww
そして>>497のURLは次のスレの頭に貼ろうぜw
0511デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0512デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN価値のある情報が一つもない肥溜めみたいなスレだなw
0513デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0514デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0515デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANhttp://livedoor.blogimg.jp/news23vip/imgs/1/d/1dba13cc.jpg
0516デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANlsの笑撃に比べると、まとめるモチベーション上がらない。WWWW
>>515
QzはJavaも知らないぞ。二分木を実装出来なくて、欠陥言語認定してる。 WWWW
0517デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANんなあほな。
0518デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANこれらのファイルをどう判別したらいいのでしょうか?
0519デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0520デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANページ追加 WWWW
www54.atwiki.jp/qzaw55cn4c/pages/17.html
0521デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANナイスww
■ このスレッドは過去ログ倉庫に格納されています