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言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9381-qput)
2018/02/19(月) 22:13:58.98ID:9/te2eSJ0265デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/05(月) 22:18:31.83ID:gAM47Ihup 1万行なんて、きちんと設計してないんじゃね?
266デフォルトの名無しさん (ワッチョイ 6704-PLqx)
2018/03/05(月) 22:28:13.08ID:FpxBMBRn0 sizeof(void)って未定義?
未定義ならそのポインタの加算幅も未定義だな。
void* p = (((void*)(&i))++);
未定義ならそのポインタの加算幅も未定義だな。
void* p = (((void*)(&i))++);
267デフォルトの名無しさん (ワッチョイ 47dc-m1UI)
2018/03/05(月) 23:16:20.23ID:THwFwnSk0 キミは正しい
268デフォルトの名無しさん (ワッチョイ e79f-8pbW)
2018/03/06(火) 03:28:05.03ID:ln7SJGum0 本当は void * に対しては足すことも引くこともできない。
269デフォルトの名無しさん (ワッチョイ 6793-fJrP)
2018/03/06(火) 06:45:37.01ID:r6wtBatS0 今ならuintptr_tにキャストして足し算引き算した後でvoid*に戻すのかな。
uintptr_t以前はchar*へのキャストだったかも知れんけど。
しかし実際のところvoid*に対してポインタを進めたり戻したりしたいって、
どういう場面で必要になるんじゃろうか?
uintptr_t以前はchar*へのキャストだったかも知れんけど。
しかし実際のところvoid*に対してポインタを進めたり戻したりしたいって、
どういう場面で必要になるんじゃろうか?
270デフォルトの名無しさん (ワッチョイ dfe3-k3ZN)
2018/03/06(火) 09:29:43.76ID:vOSWGXrq0 char *でいいじゃん
構造がわからないものはバイト列って認識でしょ?
構造がわからないものはバイト列って認識でしょ?
271デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/06(火) 10:18:02.26ID:5/zKekdl0 分からない物を適当に扱うって、すごいな
272デフォルトの名無しさん (アウアウカー Sabb-JHL/)
2018/03/06(火) 12:31:29.65ID:aP2GFEvqa しかも符号まであると決めつけてるな
273デフォルトの名無しさん (ガックシ 068f-mvGf)
2018/03/06(火) 12:40:00.86ID:KV/wZ8PJ6 GCCとかchar*と同じ挙動じゃなかったっけ?
274デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:50:23.18ID:Hdg+O/12a gccはね。
275デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:54:06.75ID:Hdg+O/12a そういやポインタ演算と言うと8086用のCコンパイラはfarとか拡張キーワード作ったりして面倒だったな。TurboCだったか。
ああいうなんとも言えないCPUコンパイラだと特殊な決まりがあったりするから要注意だ。
まあ、二度とあんなの市場に出ないような気はするけどな。
ああいうなんとも言えないCPUコンパイラだと特殊な決まりがあったりするから要注意だ。
まあ、二度とあんなの市場に出ないような気はするけどな。
276デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/06(火) 12:54:48.33ID:Hdg+O/12a 用のが抜けた。CPU用の、な。
277デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/06(火) 12:56:39.10ID:3EYe6qQ70 ハーバードアーキテクチャだとdmとかpm修飾なんてのも
278デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/06(火) 13:31:13.79ID:PuW1uuBL0 farはTurbo Cに限ったことじゃない
8086用である限り必要になる
8086用である限り必要になる
279デフォルトの名無しさん (アウウィフ FF2b-wl/W)
2018/03/06(火) 14:52:33.73ID:03FKlPoEF tinyモデルでも使えるfar最強
>>279
でもコード64KBの制限はどうしようもない
でもコード64KBの制限はどうしようもない
281デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/06(火) 16:57:53.89ID:PuW1uuBL0 64KBしかいらないときに使うのがtiny
tiny使いながら64KBじゃきついとか発想が逆
だったら端っからlarge使えつーの
tiny使いながら64KBじゃきついとか発想が逆
だったら端っからlarge使えつーの
282デフォルトの名無しさん (アウウィフ FF2b-wl/W)
2018/03/06(火) 17:18:40.34ID:03FKlPoEF283デフォルトの名無しさん (ドコグロ MMff-qUXR)
2018/03/06(火) 21:11:42.80ID:0OC43do0M284デフォルトの名無しさん (ワッチョイ 67b3-poP5)
2018/03/06(火) 21:46:56.01ID:7Z5LV7MX0 整数の差分じゃなくてポインタの差分じゃろ?
285デフォルトの名無しさん (ワッチョイ df80-zeCZ)
2018/03/06(火) 21:52:27.71ID:GCrMS1Np0 char は、符号付き・符号なしの、どちらか分からないから使うな!
エラーに、-1 を使っていたら、0〜255 しか表現できない事もある
エラーに、-1 を使っていたら、0〜255 しか表現できない事もある
286デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/06(火) 21:58:50.50ID:3EYe6qQ70 >>285
9bitなの?(T_T)
9bitなの?(T_T)
287デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/06(火) 22:17:46.38ID:3SdWrwMmp 例外を範囲外の値で判定する様なインターフェースが悪い。
はっきり戻り値は動作結果、値は出力用の引数に入れる。
みたいな設計にすべき。
ちな、C#みたいに戻り値を構造体にするって手もあるぞ。
はっきり戻り値は動作結果、値は出力用の引数に入れる。
みたいな設計にすべき。
ちな、C#みたいに戻り値を構造体にするって手もあるぞ。
288デフォルトの名無しさん (ワッチョイ df80-zeCZ)
2018/03/06(火) 23:01:01.51ID:GCrMS1Np0 素人が、char型の-1 を、エラー値に使っていると、
OS・コンパイラが変わって、その環境では、char型が0〜255 になってる
char型は、符号付き・符号なしの、どちらか分からない
OS・コンパイラが変わって、その環境では、char型が0〜255 になってる
char型は、符号付き・符号なしの、どちらか分からない
>>288
言語内の話と環境(シェルやOS)の話を混同してはならない
言語内の話と環境(シェルやOS)の話を混同してはならない
290デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/06(火) 23:46:04.03ID:5/zKekdl0 signed char って書けば?
291デフォルトの名無しさん (ワッチョイ dff9-5eZn)
2018/03/07(水) 02:24:03.38ID:Tq6bvCAq0 >>288
charの使い方が間違っていることが問題なのであって、charを使うこと自体が悪いのではない。
charの使い方が間違っていることが問題なのであって、charを使うこと自体が悪いのではない。
292デフォルトの名無しさん (ワッチョイ 6704-jpR6)
2018/03/07(水) 02:45:29.86ID:kGjiUMXW0 はいー。
1バイト整数を使いたかったら、stdintを使いましょう。
int8_tは内部がcharかもしれないけど便宜上charではありません。
ハイ、復唱。int8_tはcharではありません。
ちなみにC++でバイト表現専用のstd::byteが入りました。すごく使いにくいけど。
1バイト整数を使いたかったら、stdintを使いましょう。
int8_tは内部がcharかもしれないけど便宜上charではありません。
ハイ、復唱。int8_tはcharではありません。
ちなみにC++でバイト表現専用のstd::byteが入りました。すごく使いにくいけど。
293デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 10:31:28.26ID:ylRgY7un0 >>282
どこか間違っているか?
どこか間違っているか?
294デフォルトの名無しさん (ワッチョイ 2761-wl/W)
2018/03/07(水) 12:28:33.48ID:maM/8pnG0 gets_sのsは何の略か教えてください。
295デフォルトの名無しさん (ワッチョイ 078a-Jyeh)
2018/03/07(水) 12:31:25.66ID:/Jrz1mw60 secure
296デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 12:53:17.89ID:vftXHA5La297デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 12:53:35.53ID:vftXHA5La >>295
あ、それか。
あ、それか。
298デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 12:59:49.73ID:L+d1J7Rsa stopper
299デフォルトの名無しさん (ワッチョイ 0761-k3ZN)
2018/03/07(水) 13:42:40.79ID:r9zWShH00 昔はpc-98DOS用に作ったソフトがハード依存コードが無ければ
DOS/V機やTOWNSでも動くって聞いて驚いた。
DOS/V機やTOWNSでも動くって聞いて驚いた。
300デフォルトの名無しさん (スップ Sd7f-b+My)
2018/03/07(水) 13:49:17.29ID:9HCtzU4sd safe
301デフォルトの名無しさん (ワッチョイ df5d-W8CT)
2018/03/07(水) 16:58:54.65ID:+xlstTJJ0 N5200 で LSI C-86 試食版を使ってた……ような気がする。昔のことだから記憶が曖昧だ。
302デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:13:49.35ID:ylRgY7un0 vz?
303デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/07(水) 17:14:24.12ID:GwlIl+h20 MS-DOSが動作していれば使えるはず
304デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:17:05.15ID:ylRgY7un0 dispelしなきゃ無理じゃね?w
305デフォルトの名無しさん (ササクッテロレ Spdb-ON3X)
2018/03/07(水) 17:21:00.28ID:XsGIcGwmp secureじゃねーだろ。
暗号化だってされてねーんだからw
safetyくらいな感じじゃね?
暗号化だってされてねーんだからw
safetyくらいな感じじゃね?
306デフォルトの名無しさん (アウアウカー Sabb-g3Yl)
2018/03/07(水) 17:25:48.32ID:Rf3JBuAda DOSのシステムコール(なんて言うんだっけ?DOSコール?忘れた)だけを呼び出しているプログラムならハードウェアが違っても動く。
しかしMS-DOSはCUIしかサボートしてないのでグラフィックスは使えない。
当時のプログラムはみんな勝手にOS無視してグラフィックスのVRAMに直接アクセスして絵を出していた。
すると当然他の機種に持っていくと意図した通りに動かない。
しかしMS-DOSはCUIしかサボートしてないのでグラフィックスは使えない。
当時のプログラムはみんな勝手にOS無視してグラフィックスのVRAMに直接アクセスして絵を出していた。
すると当然他の機種に持っていくと意図した通りに動かない。
307デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 17:26:24.22ID:L+d1J7Rsa int21
308デフォルトの名無しさん (ワッチョイ 7fea-poP5)
2018/03/07(水) 17:27:45.62ID:rG21M89G0 INT 21H なら ファンクションコールだったかの
309デフォルトの名無しさん (ワッチョイ 4781-atej)
2018/03/07(水) 17:28:50.29ID:GwlIl+h20 伝統のCALL 5
310デフォルトの名無しさん (ワッチョイ e75b-m1UI)
2018/03/07(水) 17:29:37.78ID:ylRgY7un0 DOSCALLS.DLLてのもあったなあw
311デフォルトの名無しさん (アウアウエー Sa9f-wl/W)
2018/03/07(水) 17:55:21.18ID:L+d1J7Rsa CP/M か
0066 とかもあったっけ
0066 とかもあったっけ
312デフォルトの名無しさん (ドコグロ MM6b-qUXR)
2018/03/07(水) 19:19:15.79ID:Zw7oeE4wM313デフォルトの名無しさん (アウアウウー Sa2b-m1UI)
2018/03/07(水) 21:48:34.17ID:mAtFjoDLa super man
314デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 05:46:05.86ID:Eav/q7cG0 #define a(b) c##b##d
というマクロでcdを出力したいのですが
a()を呼び出すとエラーになります
解決策ありますでしょうか?
というマクロでcdを出力したいのですが
a()を呼び出すとエラーになります
解決策ありますでしょうか?
315デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/08(木) 07:45:03.75ID:/HWAGXcB0 >>314 俺のところはエラー出ないみたい。環境によるのかな。
コンパイラのバージョンを示せば詳しい人が現れるかも。
コンパイラのバージョンを示せば詳しい人が現れるかも。
316デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 07:52:57.57ID:Eav/q7cG0 ありがとうございます。
解決しました。
解決しました。
317デフォルトの名無しさん (ブーイモ MM8a-7yGo)
2018/03/08(木) 08:09:34.78ID:Ed7uI0ohM どう解決したか書くのが礼儀ってもんだ。
318デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/08(木) 08:29:41.94ID:Eav/q7cG0 コンパイラーのエラーが出ないという意見をきいて
試してみたら別のところ―がエラーになっていたということでした。
そして自分が悪質なコンパイラーに騙されていたことに気づきました。
試してみたら別のところ―がエラーになっていたということでした。
そして自分が悪質なコンパイラーに騙されていたことに気づきました。
319デフォルトの名無しさん (ササクッテロレ Sp33-Y2nf)
2018/03/08(木) 09:10:26.22ID:lHBKoGy1p エラーの文章くらい読めよ。
320デフォルトの名無しさん (アウウィフ FF1f-0aB1)
2018/03/08(木) 10:10:36.36ID:ue18PqKiF Cのエラーはエラーの発生個所を教えてくれるけど原因個所は教えてくれない
321デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/08(木) 10:25:51.65ID:0lNTHbnP0 おそらく警告とエラーを混同していると思われ
> warning C4003: マクロ 'a' に指定された実引数の数が少なすぎます。
> warning C4003: マクロ 'a' に指定された実引数の数が少なすぎます。
322デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/08(木) 17:10:32.81ID:/HWAGXcB0 関数型マクロの使用時、カッコの内側が空の場合に、
「引数が指定されていない」と解釈して警告を出すか、
「1個の引数(内容はヌルストリング)が指定されている」と解釈するか、
そういう問題みたいね。
「引数が指定されていない」と解釈して警告を出すか、
「1個の引数(内容はヌルストリング)が指定されている」と解釈するか、
そういう問題みたいね。
323デフォルトの名無しさん (ワッチョイ bbf2-uQtz)
2018/03/08(木) 23:40:10.76ID:nwTnwFPU0324デフォルトの名無しさん (ワッチョイ 4a5d-uQtz)
2018/03/09(金) 00:58:31.73ID:U4YZHGfl0 そういう一般仕様から外れるコンパイラの使用を強制させられたことあるの?
325デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/09(金) 06:39:09.84ID:K2/JY7Cc0 cout << typeid(__int8).name(); //char
326デフォルトの名無しさん (ササクッテロレ Sp33-Y2nf)
2018/03/09(金) 10:59:36.49ID:rlkWp7/Ip 誰だよCの話題に別言語持ち出してんの。
327デフォルトの名無しさん (ワンミングク MMda-GEnZ)
2018/03/09(金) 12:10:45.59ID:WqdE+VIZM いやらCね
328デフォルトの名無しさん (アウアウカー Sa7b-vvOV)
2018/03/09(金) 12:13:57.64ID:LlK9d7kba 頭おかC
329デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 16:36:39.04ID:AbBnYUJz0 符号なし64ビット整数を64ビット右シフトすると
0にならないでそのままの時や変な別の値になるときがあるんですけど
コンパイラーのバグですか?
0にならないでそのままの時や変な別の値になるときがあるんですけど
コンパイラーのバグですか?
330デフォルトの名無しさん (アウアウウー Sa1f-whik)
2018/03/09(金) 17:10:28.27ID:aCtfd81Na331デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:10:41.68ID:AbBnYUJz0 http://fast-uploader.com/file/7076138459666/
2つのファイルが無いと再現できなかったのでソースファイルを
アップロードしました
コンパイルしてなぜ0にならないのか教えてください。
2つのファイルが無いと再現できなかったのでソースファイルを
アップロードしました
コンパイルしてなぜ0にならないのか教えてください。
332デフォルトの名無しさん (ワッチョイ fb93-ao9L)
2018/03/09(金) 17:11:34.80ID:er4JdT2d0333デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:12:19.58ID:AbBnYUJz0 コンパイラーは
gcc version 7.3.0 (Rev1, Built by MSYS2 project)
で試しました。
悪質なコンパイラーに騙されているのかもしれませんね。
gcc version 7.3.0 (Rev1, Built by MSYS2 project)
で試しました。
悪質なコンパイラーに騙されているのかもしれませんね。
334デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:25:01.13ID:AbBnYUJz0 ファイル1
#include<stdio.h>
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b){
printf("%llx\n", b>>(64-a));
return b>>64-a;}
void e(uint8_t a){ f(0,0x8318318318318318);}
void g(uint8_t a){ f(a,0x8318318318318318);}
ファイル2
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b);
void g(uint8_t a);
void e(uint8_t a);
int main(void) {
g(0);
e(0);
return 0;
}
この二つのファイルをコンパイルして実行してみてください。
よろしくお願いします。
#include<stdio.h>
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b){
printf("%llx\n", b>>(64-a));
return b>>64-a;}
void e(uint8_t a){ f(0,0x8318318318318318);}
void g(uint8_t a){ f(a,0x8318318318318318);}
ファイル2
#include<stdint.h>
uint64_t f(uint8_t a,uint64_t b);
void g(uint8_t a);
void e(uint8_t a);
int main(void) {
g(0);
e(0);
return 0;
}
この二つのファイルをコンパイルして実行してみてください。
よろしくお願いします。
335デフォルトの名無しさん (ワッチョイ cb5b-uQtz)
2018/03/09(金) 17:27:15.48ID:K2/JY7Cc0 その昔、CPUのバグで16bitレジスタを32bitシフトすると0にならないとかいうのなかったっけ
336デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/09(金) 17:45:47.23ID:AbBnYUJz0 これからは64ビットのシフト使ってるコードは全てバグの温床になるな。
337デフォルトの名無しさん (ブーイモ MMd6-7yGo)
2018/03/09(金) 18:10:27.57ID:Z9n7UPH0M C11の6.5.7の3より。
If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined.
If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined.
338332 (ワッチョイ fb93-ao9L)
2018/03/09(金) 20:12:23.00ID:er4JdT2d0 >>337 フォローありがとう。この部分ですわ。
6.5.7 Bitwise shift operators ビットシフト演算子 の項。
もしも右オペランドの値が負、または汎整数拡張後の左オペランドの(ビット)幅より
大きいか等しい場合、振る舞いは未定義である。
と言った感じかな。
promoted left operand の部分が「汎整数拡張後の左オペランド」で
合ってるのか自信ないけど。
6.5.7 Bitwise shift operators ビットシフト演算子 の項。
もしも右オペランドの値が負、または汎整数拡張後の左オペランドの(ビット)幅より
大きいか等しい場合、振る舞いは未定義である。
と言った感じかな。
promoted left operand の部分が「汎整数拡張後の左オペランド」で
合ってるのか自信ないけど。
339デフォルトの名無しさん (ワッチョイ 6a80-csLy)
2018/03/09(金) 21:17:55.13ID:ysNVe5/v0 64bit 符号なしを、64bit シフトするって、そもそも無意味だろ
元のビットが残っていない。
全部のビットが変わっている!
意味があるのは、63bit まで
元のビットが残っていない。
全部のビットが変わっている!
意味があるのは、63bit まで
340デフォルトの名無しさん
2018/03/09(金) 22:22:53.87 >>339
0になってくれれば余計な分岐やら演算やらを省けるかもしれないだろ
0になってくれれば余計な分岐やら演算やらを省けるかもしれないだろ
341デフォルトの名無しさん (ワッチョイ be81-6YPG)
2018/03/09(金) 22:57:22.97ID:dpc+cSNT0 0クリアする最適な方法なの?
342デフォルトの名無しさん (ワッチョイ 6a80-csLy)
2018/03/09(金) 23:23:40.83ID:ysNVe5/v0 1010 XOR
1010
----
0000
n は任意のビットで、n XOR n で、全ビット0にできる
1010
----
0000
n は任意のビットで、n XOR n で、全ビット0にできる
343デフォルトの名無しさん
2018/03/09(金) 23:25:22.45 >>342
そんなん全ビット読まなきゃいけないじゃん
そんなん全ビット読まなきゃいけないじゃん
344デフォルトの名無しさん (ワッチョイ cf8a-GEnZ)
2018/03/09(金) 23:29:26.36ID:9IZd/e860 n and 030 とかで任意ビットのonはわからないか?
345デフォルトの名無しさん (ワッチョイ 4a5d-uQtz)
2018/03/09(金) 23:47:39.35ID:U4YZHGfl0 >0クリア
つ ゼロレジスタ
つ ゼロレジスタ
346デフォルトの名無しさん (ワッチョイ 0b9f-uQtz)
2018/03/10(土) 00:03:47.54ID:a2p+alti0 1 bit づつじわじわシフトするなら何とかなるんだけどな。
https://paiza.io/projects/D9KFwMa77ifp6AOgAaO2PQ
https://paiza.io/projects/D9KFwMa77ifp6AOgAaO2PQ
347デフォルトの名無しさん (ワッチョイ fb04-Osi7)
2018/03/10(土) 05:55:47.17ID:jel/5KgH0 定数リテラルにullって使ってなくてもだいじょうぶなんだっけ?
348デフォルトの名無しさん (ワッチョイ 3fac-3aOH)
2018/03/10(土) 12:12:18.84ID:Z1L9sOVC0 >>343
xor は少サイクルなのが利点ですね。
xor は少サイクルなのが利点ですね。
349デフォルトの名無しさん (ワッチョイ 7361-0aB1)
2018/03/10(土) 13:08:59.94ID:qojMr6PP0 アセンブリコードの0にする方法はxorやのう
350デフォルトの名無しさん (ワッチョイ 1780-7yGo)
2018/03/10(土) 13:24:16.81ID:+HpaswK40 CPU依存すぎる
351デフォルトの名無しさん (ワッチョイ 6ab3-3fsH)
2018/03/10(土) 13:47:45.54ID:f+B2oLbA0 Z80時代の爺だろ、放置してやれ
352デフォルトの名無しさん (ワッチョイ be81-6YPG)
2018/03/10(土) 14:18:47.85ID:J/EnQN8G0 パチンコ屋さん
353デフォルトの名無しさん (ワッチョイ 6baa-Y2nf)
2018/03/10(土) 15:25:43.76ID:ps/htySn0 今じゃ乗除演算さえワンサイクルの時代に何アホな話してんだ?
354デフォルトの名無しさん (アウアウカー Sa7b-joIP)
2018/03/10(土) 16:20:41.72ID:HvD6qwC3a アセンブラについてはどうしても自分でアセンブリ言語で書かねばならない事態に陥らない限り書くことはないだろうなあ。
>>354
そうそう、printf デバッグでは力不足でもう否が応でも gdb に行くのを逃げ回っているのと同じです
そうそう、printf デバッグでは力不足でもう否が応でも gdb に行くのを逃げ回っているのと同じです
356デフォルトの名無しさん (ワッチョイ 0b9f-RK0z)
2018/03/10(土) 17:18:49.50ID:a2p+alti0 gdb は普通に使うなあ。
357デフォルトの名無しさん (アウウィフ FF1f-0aB1)
2018/03/10(土) 17:35:13.89ID:5pXC+BOTF printfなめたらいかん
358デフォルトの名無しさん (ワッチョイ 6baa-Y2nf)
2018/03/10(土) 17:41:43.93ID:ps/htySn0 割り込みん中でprintf使って暴走してデバッグが出来なかった思い出。
359デフォルトの名無しさん (ワッチョイ 0b9f-uQtz)
2018/03/10(土) 18:10:52.64ID:a2p+alti0 俺はシグナルハンドラの中でログ出力しようとして FILE * 経由で fprintf() 等で出力したら
そのライブラリの中でデッドロックしてハマった。 kill -ABRT で core dump させて gdb
で core ファイルと共に読ませてようやっと停止箇所がわかった。
そのライブラリの中でデッドロックしてハマった。 kill -ABRT で core dump させて gdb
で core ファイルと共に読ませてようやっと停止箇所がわかった。
360デフォルトの名無しさん (ブーイモ MMd6-KXGk)
2018/03/10(土) 20:11:43.97ID:fNi+2/6HM gdbマスターしてからprintデバッグバカにしてたけど
printデバッグ自動化してからprintデバッグ信者になった
無論レアケースデバッグはgdb使うけどね
printデバッグ自動化してからprintデバッグ信者になった
無論レアケースデバッグはgdb使うけどね
361デフォルトの名無しさん (ワッチョイ 0b9f-uQtz)
2018/03/11(日) 01:20:23.17ID:ry5KQfC80 printf() をデバッグで使う時はバッファリングを考慮していないとハマる事がある。
それと stdout と stderr と両方に出る可能性がある場合にその順序が食い違う可能性もある。
シグナルハンドラ内やマルチスレッドプログラムで使ってうまく行かない事もある。
その辺を全て考慮するならいいだろうが、しかし、それなら初めからログファイルに出力される
ように作った方が良いような気もする。
それと stdout と stderr と両方に出る可能性がある場合にその順序が食い違う可能性もある。
シグナルハンドラ内やマルチスレッドプログラムで使ってうまく行かない事もある。
その辺を全て考慮するならいいだろうが、しかし、それなら初めからログファイルに出力される
ように作った方が良いような気もする。
362デフォルトの名無しさん (ブーイモ MMd6-KXGk)
2018/03/11(日) 02:00:44.19ID:22CnVBlaM printデバッグなら専用モジュール作るべきだな
俺は時刻、関数名、コンテキストIDを付けて
標準出力かファイルにはかせてる
俺は時刻、関数名、コンテキストIDを付けて
標準出力かファイルにはかせてる
363デフォルトの名無しさん (ワッチョイ 8f23-0aB1)
2018/03/11(日) 09:19:44.59ID:zWe+i43K0 そこまでするならsyslog
364デフォルトの名無しさん (ワッチョイ 2e23-uQtz)
2018/03/11(日) 10:20:33.73ID:szqHStkk0 >>361
setvbuf忘れなければ済む話だよパパ
setvbuf忘れなければ済む話だよパパ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- TSMC、国内で4nmの先端半導体を製造へwwwwwwwwwww 高市さんいつもありがとう🥺 [784715804]
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- 【安倍悲報】めっちゃ癌になる遺伝子を持った男性、精子をドナー提供し197人の子供を作る [884040186]
- 中年男性のオナニー死が激増、原因は不明 [422186189]
- 【悲報】音符アイコン大ピンチ「真実だからデマスレ立てても大丈夫やろw」→神戸地検「ダメです」立花逮捕w [732289945]
- 駐日米国大使「フォーブス誌が今年の“世界で最もパワフルな女性”に高市首相を選出。おめでとうございます!」 [834922174]
