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/te2eSJ0266デフォルトの名無しさん (ワッチョイ 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忘れなければ済む話だよパパ
365デフォルトの名無しさん (ワッチョイ 0b9f-uQtz)
2018/03/11(日) 14:10:54.85ID:ry5KQfC80366デフォルトの名無しさん (ワッチョイ 2e23-uQtz)
2018/03/11(日) 15:06:05.16ID:szqHStkk0 >>365
ロケールがCならprintfだってスレッドセーフだしぎりぎりシグナルセーフだよパパ
ロケールがCならprintfだってスレッドセーフだしぎりぎりシグナルセーフだよパパ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- 【画像】大人気Vtuber宝鐘マリンさん、115円…
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 今緊急でコマを回しています
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
