!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 162
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2389-FUJr)
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol0482デフォルトの名無しさん (スプッッ Sdff-ytPG)
2024/01/26(金) 09:12:22.82ID:f6TAFOdQd483デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 09:47:41.79ID:5qejItpup アドレスと言う値を渡してるのだからどちらも同じ事だろ
484デフォルトの名無しさん (ワッチョイ e763-QAJh)
2024/01/26(金) 10:37:55.79ID:mR+OAnS80 いい加減なところが好かれる理由
485デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 10:46:46.89ID:Tqv1qsfwp アセンブラまんどくさいから作ったのがC
だから型がイイカゲンなのはアセンブラやってる人が対象だから
だから型がイイカゲンなのはアセンブラやってる人が対象だから
486はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/26(金) 10:52:28.10ID:6gE8lNl00 イイカゲンにしてるとコンパイラの最適化を有効にしたときに破綻するぞ
487デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 12:43:22.79ID:IWVVekFc0 >>483
構造体は値渡しとアドレスの値渡しがある
どっちも値渡しというと訳が分からなくなる
なので、構造体は値渡しとポインタ渡しが出来ると言えば便利だ
そうすれば、配列は値渡しが出来ないとも言うことが出来る
構造体は値渡しとアドレスの値渡しがある
どっちも値渡しというと訳が分からなくなる
なので、構造体は値渡しとポインタ渡しが出来ると言えば便利だ
そうすれば、配列は値渡しが出来ないとも言うことが出来る
488デフォルトの名無しさん (ワッチョイ c701-bKTd)
2024/01/26(金) 13:17:11.83ID:hEzJutz20 C++で参照が登場したので「アドレスの値渡し」とか言っている訳で
C++を知らんと意味不明だし違和感あるだろうな
C++を知らんと意味不明だし違和感あるだろうな
489デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 14:03:32.73ID:OnjHbhExM C++がどうのとかは全然関係ないでしょ
490はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/26(金) 14:07:19.39ID:6gE8lNl00 C++ とは関係ないと私も思う。
仮引数と実引数の関係は (型がポインタかどうかに関係なく) 値の代入であるということになっている。
繰り返すが言語仕様上の理屈では解釈の余地なく全ての引数は値呼びのメカニズムで規定されているよ。
C++ の参照と区別するための言い回しではなく仕様上の理屈通りに言えばそうなるってだけ。
仮引数と実引数の関係は (型がポインタかどうかに関係なく) 値の代入であるということになっている。
繰り返すが言語仕様上の理屈では解釈の余地なく全ての引数は値呼びのメカニズムで規定されているよ。
C++ の参照と区別するための言い回しではなく仕様上の理屈通りに言えばそうなるってだけ。
491デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 14:12:08.41ID:u8n9O9U10 それで結局
&var
の値はポインタなの?アドレスなの?
どっちでもいいんだよね?
&var
の値はポインタなの?アドレスなの?
どっちでもいいんだよね?
492はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-3Dea)
2024/01/26(金) 14:57:45.80ID:6gE8lNl00 「アドレス」と「ポインタ」の使い分けはイマイチわからないんだよなー。どっちでもいいと思う。
単項演算子の & にはアドレス演算子という名前がついていてアドレスを返すとも書いてあるのでこれについてはアドレスと言っていいのは間違いない。
ポインタは型の種類のように使われてることもあるし、ポインタ型の値のことを指しているように見える箇所もある。
個人的感想としてはアドレスのほうが低レイヤ寄りの概念でポインタは型で意味付けしているような雰囲気を感じてるんだけどあまりはっきりしない。
単項演算子の & にはアドレス演算子という名前がついていてアドレスを返すとも書いてあるのでこれについてはアドレスと言っていいのは間違いない。
ポインタは型の種類のように使われてることもあるし、ポインタ型の値のことを指しているように見える箇所もある。
個人的感想としてはアドレスのほうが低レイヤ寄りの概念でポインタは型で意味付けしているような雰囲気を感じてるんだけどあまりはっきりしない。
493デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 16:28:15.83ID:TUEfKZ6Qp 参照渡しと実体渡しかw
あれも、アドレス渡しとコピー渡しって言えばいいのにね
あれも、アドレス渡しとコピー渡しって言えばいいのにね
494デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/26(金) 16:55:28.58ID:VvnpRsjB0 アドレスは、数値が主体でそれが何を示しているかの説明の為の単語。
ポインタは変数の一つで *p や p->a 等の動作も含めての設計思想。
などと意味不明な(ry
ポインタは変数の一つで *p や p->a 等の動作も含めての設計思想。
などと意味不明な(ry
495デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 17:26:29.97ID:CEoHa9Fg0 アドレスは値
ポインタは型だよ
正確にはintのポインタ型とか言うけど
ポインタは型だよ
正確にはintのポインタ型とか言うけど
496デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/26(金) 17:35:02.08ID:WoOISbdM0 ポインタはポインタ値を格納する場所
497デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/26(金) 17:36:54.25ID:CEoHa9Fg0 場所と言うのは曖昧な表現だな
498デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 18:03:51.31ID:Vqpo1a/ZM アドレスは値で右辺値、ポインタは変数でオブジェクトで左辺値
こんな基本的なこと、頼むよ
こんな基本的なこと、頼むよ
499デフォルトの名無しさん (ワッチョイ 7f19-rEzG)
2024/01/26(金) 18:27:39.65ID:GfgH9lD40 >>498 正しくない。ポインタ型の変数 int* p に対して p + 1 もポインタだけど、変数でも左辺値でもない。
500デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/26(金) 18:29:01.58ID:WoOISbdM0 ある時はメモリーのサラリーマン、ある時はレジスターの探偵
501デフォルトの名無しさん (ワッチョイ e746-qZe7)
2024/01/26(金) 19:46:30.13ID:XBTJ48xK0 規格上はどうなってるか知らんが
ポインタでいいじゃん統一しろよ
変数へのポインタを取る時アドレスと言いたくなるんやろな
分からんでもないが使い分ける必要はないと思う
アドレスといいつつ結局ポインタでしかないやろ?
場所だけじゃなくて型のサイズも持ってるでしょ?
アドレスと聞くと番地だけってイメージだけど
ポインタっつうのはそれに加えてサイズも持ってるのがミソ
だから不必要にアドレスと言い直す必要はない
だって実際にポインタしか扱わないんだから
ポインタでいいじゃん統一しろよ
変数へのポインタを取る時アドレスと言いたくなるんやろな
分からんでもないが使い分ける必要はないと思う
アドレスといいつつ結局ポインタでしかないやろ?
場所だけじゃなくて型のサイズも持ってるでしょ?
アドレスと聞くと番地だけってイメージだけど
ポインタっつうのはそれに加えてサイズも持ってるのがミソ
だから不必要にアドレスと言い直す必要はない
だって実際にポインタしか扱わないんだから
502デフォルトの名無しさん (ワッチョイ 0791-RdP4)
2024/01/26(金) 20:04:10.51ID:Su75gAlu0 アドレスっていう言葉は規格には出てこないと予想してた。
規格にはポインタだけあればよくて、アドレスは実装の仕方のイメージがある。アドレスは多くの場合整数になるが、文字や文字列でもいいというような。
規格にはポインタだけあればよくて、アドレスは実装の仕方のイメージがある。アドレスは多くの場合整数になるが、文字や文字列でもいいというような。
503デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 20:45:56.85ID:wwCmUZ7Wp アドレスってアセンブラ屋さんが言う奴?
504デフォルトの名無しさん (ワッチョイ 5f36-zwhO)
2024/01/26(金) 21:05:55.41ID:pu3OCH3K0 バイナリーエディタやメモリエディタでも言うよな。
505デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 21:07:17.18ID:coh7wFVpp バイナリエディタのはアドレス違うよなぁ
メモリーエディタはアドレスだからいいけど
メモリーエディタはアドレスだからいいけど
506デフォルトの名無しさん (ワントンキン MM4f-NhvB)
2024/01/26(金) 21:11:38.94ID:Vqpo1a/ZM >>499
p+1はアドレスだよ
p+1はアドレスだよ
507デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:21:03.31ID:PDBFw7tbp ポインターだろ
508デフォルトの名無しさん (ワッチョイ e730-qZe7)
2024/01/26(金) 22:21:36.46ID:XBTJ48xK0 int a[4] = {0}, (*b)[4] = &a, *c = &a[0];
printf("%p %p\n", b, b + 1);
printf("%p %p\n", c, c + 1);
0x7ffc2026d710 0x7ffc2026d720
0x7ffc2026d710 0x7ffc2026d714
アドレスと捉えると同じ番地だけど
+1の結果が違う番地になるのは
ポインタが大きさを知っているから
これが単なる整数とは違うところ
printf("%p %p\n", b, b + 1);
printf("%p %p\n", c, c + 1);
0x7ffc2026d710 0x7ffc2026d720
0x7ffc2026d710 0x7ffc2026d714
アドレスと捉えると同じ番地だけど
+1の結果が違う番地になるのは
ポインタが大きさを知っているから
これが単なる整数とは違うところ
509デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:22:12.95ID:8+XG8rAlp アドレスと言えるのは直接ハードウェアにアクセスするものだけだよな
510デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 22:29:00.75ID:kxxVAnT60 規格書の加減算のとこにはp + 1の結果が何になるか書いてある?
511デフォルトの名無しさん (ササクッテロラ Sp7b-NMAD)
2024/01/26(金) 22:36:52.96ID:tuyRrB6Ip p+1の結果は、pの型によって違うやろ
512デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/26(金) 22:48:45.51ID:kxxVAnT60 規格ちょっと読んだけど加減算のところには結果がアドレスになるかポインタになるか書いてなくね?
513デフォルトの名無しさん (ワッチョイ df20-NMAD)
2024/01/26(金) 22:49:56.05ID:4G76jppe0 >>512
アドレスはポインタのエイリアスだろ?
アドレスはポインタのエイリアスだろ?
514デフォルトの名無しさん (ワッチョイ 5f10-iTDz)
2024/01/27(土) 00:39:52.91ID:RxNi/RLS0 だから、アドレスは値で、ポインタは型なんだ
p + 1はpの型によって結果が決まる
intかintのポインタ型かで結果が変わる
p + 1はpの型によって結果が決まる
intかintのポインタ型かで結果が変わる
515デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/27(土) 00:55:04.46ID:3j95TwYq0516デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/27(土) 01:15:46.64ID:lTO1GYgs0 >>514
規格読み直したら加算の結果はポインタになるって書いてあったわ
規格読み直したら加算の結果はポインタになるって書いてあったわ
517デフォルトの名無しさん (ワッチョイ 5f7c-ytPG)
2024/01/27(土) 10:42:42.11ID:3j95TwYq0 >>516
何章?
何章?
518デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/27(土) 14:54:07.21ID:IaaZCBNA0 (int)(p+1)-(int )(p) == sizeof (*p)
だっけ?
だっけ?
519デフォルトの名無しさん (スプッッ Sdff-ytPG)
2024/01/27(土) 15:00:52.15ID:Go/zq51jd >>518
intは32bitのLP64環境ではどうなるんだい?
intは32bitのLP64環境ではどうなるんだい?
520デフォルトの名無しさん (ワッチョイ 4710-zwhO)
2024/01/27(土) 15:08:44.06ID:IaaZCBNA0 コンパイルエラーか警告でて下位32bitのみ取得じゃね?
sizeof (*p)がint_max超える設定でもなけりゃ目的は果たせそうだけど。
sizeof (*p)がint_max超える設定でもなけりゃ目的は果たせそうだけど。
521はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-G0Zh)
2024/01/27(土) 16:02:39.58ID:TmJLT/yO0 ポインタは整数に型変換できるけどその値がどうなるかは処理系定義。
変換結果がその整数型で表現できなかったときは未定義。
gcc や clang だとポインタをより小さい整数型に変換しようとしたらエラーになった。
intptr_t や uintptr_t に限っては正しい void* はこれらの整数に変換可能、かつ
void* に再び変換したら元の値と等しいことが保証される。
オブジェクトを指すポインタは void* に変換可能なので
オブジェクトを指すポインタは intptr_t や uintptr_t に (情報の欠落なく、可逆な形で) 変換できる。
しかしポインタが整数でどのような表現を持つかは規定されていないし、
intptr_t や uintptr_t は提供されないこともありうる。
オブジェクトを指すポインタは文字型を指すポインタに型変換してバイト列としてアクセスできることは保証されているので
オブジェクトの大きさを知るためにポインタ操作をするのであれば ↓ のような形にするのはアリなはず。
#include <assert.h>
int main(void) {
int obj;
int *p=&obj;
assert((char*)(p+1)-(char*)(p) == sizeof(*p));
}
変換結果がその整数型で表現できなかったときは未定義。
gcc や clang だとポインタをより小さい整数型に変換しようとしたらエラーになった。
intptr_t や uintptr_t に限っては正しい void* はこれらの整数に変換可能、かつ
void* に再び変換したら元の値と等しいことが保証される。
オブジェクトを指すポインタは void* に変換可能なので
オブジェクトを指すポインタは intptr_t や uintptr_t に (情報の欠落なく、可逆な形で) 変換できる。
しかしポインタが整数でどのような表現を持つかは規定されていないし、
intptr_t や uintptr_t は提供されないこともありうる。
オブジェクトを指すポインタは文字型を指すポインタに型変換してバイト列としてアクセスできることは保証されているので
オブジェクトの大きさを知るためにポインタ操作をするのであれば ↓ のような形にするのはアリなはず。
#include <assert.h>
int main(void) {
int obj;
int *p=&obj;
assert((char*)(p+1)-(char*)(p) == sizeof(*p));
}
522デフォルトの名無しさん (スッップ Sd7f-hxDZ)
2024/01/27(土) 17:07:11.96ID:JGqkehCyd はちみつの説明はちっとも頭に入ってこん
3行にまとめてから貼れ
3行にまとめてから貼れ
523デフォルトの名無しさん (ワッチョイ 5fb0-ytPG)
2024/01/27(土) 17:46:47.32ID:gXnDqsx80 >>518
つまりこのコードはダメってこったね
つまりこのコードはダメってこったね
524はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 478b-3Dea)
2024/01/27(土) 18:21:39.29ID:ubKEU+Fr0525デフォルトの名無しさん (ワッチョイ e763-amFq)
2024/01/27(土) 18:27:31.62ID:8jAlHp2M0 3行しか文章解読できないなら、コード書くのは辛いだろう
526デフォルトの名無しさん (ワッチョイ e7bb-iTDz)
2024/01/27(土) 18:41:16.06ID:lTO1GYgs0 >>517
「加算」でページ内検索すればすぐ見つかる
「加算」でページ内検索すればすぐ見つかる
527デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 19:08:43.26ID:rfW+Fz5e0 errno ってどうしてスレッドごとに別々につかえるの?
528はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/22(木) 19:34:35.22ID:o0M/RgFs0529デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 19:51:00.46ID:rfW+Fz5e0530はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/22(木) 20:08:19.54ID:o0M/RgFs0 >>529
errno は型 int を持つ変更可能な左辺値に展開されるならマクロで定義されてもよいことになっている。
昔の C には記憶域期間の分類にスレッドは無かったが
#define errno *__foo()
みたいな感じで定義しておいて、
この関数がスレッドごとに適切な場所を返すように作っておけば辻褄は合う。
errno は型 int を持つ変更可能な左辺値に展開されるならマクロで定義されてもよいことになっている。
昔の C には記憶域期間の分類にスレッドは無かったが
#define errno *__foo()
みたいな感じで定義しておいて、
この関数がスレッドごとに適切な場所を返すように作っておけば辻褄は合う。
531デフォルトの名無しさん (ワッチョイ 6f5f-YGpO)
2024/02/22(木) 21:32:39.53ID:rfW+Fz5e0 >>530
これでerrnoの初期化とかできるのか? なるほどできるのか。よくできてるね
これでerrnoの初期化とかできるのか? なるほどできるのか。よくできてるね
532デフォルトの名無しさん (ワッチョイ 4301-H3lM)
2024/02/22(木) 22:17:46.64ID:3b0UfxEB0 結局、スレッド処理がいい具合にリンクしてくれてるって事だね
533デフォルトの名無しさん (ワッチョイ bfbd-X6hX)
2024/02/23(金) 15:59:36.95ID:HdyUmXx/0 >>529
別にTLSの文法がなくてもコンパイラにTLS相当の非公開機能があれば実現可能。
別にTLSの文法がなくてもコンパイラにTLS相当の非公開機能があれば実現可能。
534デフォルトの名無しさん (ワッチョイ 8f0e-8Avu)
2024/02/24(土) 16:12:18.49ID:+4BfNMQz0 TLSと言えばゲームの方やね
バタ語を略したスレッドローカルストレージではないんや
このスレの世代的にも半数以上がそう思って口に言わずとも突っ込んだ経験があるはずや
バタ語を略したスレッドローカルストレージではないんや
このスレの世代的にも半数以上がそう思って口に言わずとも突っ込んだ経験があるはずや
535デフォルトの名無しさん (ワッチョイ bfbd-X6hX)
2024/02/24(土) 16:17:18.15ID:dGxq80rr0 ゲーム? バタ語? 何を言ってるのか分からない。
536はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7332-tW/T)
2024/02/24(土) 16:54:19.76ID:felFEjYK0 「TLS ゲーム」でググったらトゥルー・ラブストーリーが出てきた。
タイトルは聞いたことがあるけどやったことないし、 TLS なんて略称にはなじみがないわ。
Transport Layer Security と被っとるやないけというツッコミはしたくなったことはあるが。
バタ語ってなんや?
タイトルは聞いたことがあるけどやったことないし、 TLS なんて略称にはなじみがないわ。
Transport Layer Security と被っとるやないけというツッコミはしたくなったことはあるが。
バタ語ってなんや?
537デフォルトの名無しさん (アウアウウー Sae7-LYxY)
2024/02/24(土) 23:04:08.46ID:a3fFW9uua ここの人は並列計算についても答えるの?
それともスレ違い?
それともスレ違い?
538デフォルトの名無しさん (アウアウウー Sae7-LYxY)
2024/02/24(土) 23:05:48.99ID:a3fFW9uua スレ違いなら何処が適してるの?
539はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-a3My)
2024/02/25(日) 01:01:43.21ID:m/LZ7YZH0 >>537
一応は C の名前を冠したスレだからその質問が言語仕様に関わる質問ならこのスレでいい。
C を使ったロジックの組み立てかたみたいなのもある程度は許容されると思う。
環境に固有の事情が絡むならそれぞれのスレのほうがいいこともある。
Win32api スレとか Unix スレとか。
一応は C の名前を冠したスレだからその質問が言語仕様に関わる質問ならこのスレでいい。
C を使ったロジックの組み立てかたみたいなのもある程度は許容されると思う。
環境に固有の事情が絡むならそれぞれのスレのほうがいいこともある。
Win32api スレとか Unix スレとか。
540名無し兎と鰻の大乱闘 (ワッチョイ cafd-p5xT)
2024/02/25(日) 23:17:51.95ID:3BSAc3tW0 しーげんごってなに?
541デフォルトの名無しさん (ワッチョイ 0604-Q4h0)
2024/02/26(月) 00:50:15.88ID:mDObVK5g0 tlsって毎回アクセスする度に初期化済みかどうかチェックされるんか?
もしそうなら未初期化上等のc言語では特殊だな
もしそうなら未初期化上等のc言語では特殊だな
542デフォルトの名無しさん (ワッチョイ 0aaa-g1P5)
2024/02/26(月) 17:12:35.82ID:hotfpUjh0 【AI】Stable Diffusion 3発表、Soraで話題の拡散トランスフォーマーを採用 [すらいむ★]
http://egg.5ch.net/test/read.cgi/scienceplus/1708865670/l50
ボイス・トォ・スカるしている者も攻撃を受けるようになりました
http://egg.5ch.net/test/read.cgi/scienceplus/1708865670/l50
ボイス・トォ・スカるしている者も攻撃を受けるようになりました
543デフォルトの名無しさん (ワッチョイ 9e6d-EVRh)
2024/02/26(月) 19:38:00.95ID:7RO6bLyL0 こんな Web ページを作りました。ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
http://www7b.biglobe.ne.jp/~river_r/chs/
544デフォルトの名無しさん (ワッチョイ b301-43ji)
2024/02/27(火) 13:07:12.38ID:gZVWnZ6O0 アクセスしないほうがいいよ
545デフォルトの名無しさん (ワッチョイ 0a97-46dB)
2024/02/27(火) 13:33:45.24ID:pm1A4e3U0 理由は?
546デフォルトの名無しさん (ワッチョイ 9eb5-EVRh)
2024/02/27(火) 17:32:18.89ID:xGsMPO790 >>543 ごめんなさい。言葉足らずでした。
「数値計算結果の画像化など」 という Web ページを作りました。
プログラミング、数値計算、カオス、画像作成と表示
などに興味がある方は、ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
「数値計算結果の画像化など」 という Web ページを作りました。
プログラミング、数値計算、カオス、画像作成と表示
などに興味がある方は、ぜひどうぞ。
http://www7b.biglobe.ne.jp/~river_r/chs/
547デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/27(火) 17:46:48.10ID:0/infknm0 空白のBMPなんて簡単に作れると思うよ
起動したときに自分で作ったら良いと思った
起動したときに自分で作ったら良いと思った
548はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-a3My)
2024/02/27(火) 18:03:33.97ID:NfALWDmT0549デフォルトの名無しさん (ワッチョイ 9e07-EVRh)
2024/02/29(木) 11:21:59.57ID:lAXCV22P0 >>0548
>546 です。C++ に特有な機能は、
全くと言っていいほど、使っていませんよ。
pow(x, y) というのは目新しいけど。
>546 です。C++ に特有な機能は、
全くと言っていいほど、使っていませんよ。
pow(x, y) というのは目新しいけど。
550デフォルトの名無しさん (ワッチョイ 060a-Q4h0)
2024/02/29(木) 11:51:17.73ID:wasjN/NH0 30年前で時間が止まってんなこいつ
551デフォルトの名無しさん (ワッチョイ 4a23-46dB)
2024/02/29(木) 13:30:21.68ID:tTOuwN9N0 拡張子を.cにしてビルドしてみる
552はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f32-o3N8)
2024/02/29(木) 14:03:45.25ID:w6pA3tyf0 >>549
C++ の機能をほとんど使ってないことはわかってるしそう言ってるじゃないの。
使わないのに C++ の形式をとって C スレに投下するのはちょっと不親切かもねという話をしてるんだよ。
pow (べき乗関数の総称版) は C にもあるし、 C の仕様に入ったのは C99 から。
それを知らなくて (しかし使いたくて?) C++ にしたという意味なのかな?
C++ の機能をほとんど使ってないことはわかってるしそう言ってるじゃないの。
使わないのに C++ の形式をとって C スレに投下するのはちょっと不親切かもねという話をしてるんだよ。
pow (べき乗関数の総称版) は C にもあるし、 C の仕様に入ったのは C99 から。
それを知らなくて (しかし使いたくて?) C++ にしたという意味なのかな?
553デフォルトの名無しさん (ワッチョイ 4650-o+si)
2024/02/29(木) 15:54:08.56ID:a+kbfZOT0 pow()なんてx^y(yが変数)したい時だけでいい
pow(x,2), pow(x,0.5)は、(x*x), sqrt(x)と書いた方がいい
…まさか今時のコンパイラはこれも最適化したりする?
pow(x,2), pow(x,0.5)は、(x*x), sqrt(x)と書いた方がいい
…まさか今時のコンパイラはこれも最適化したりする?
554デフォルトの名無しさん (ワッチョイ caac-o+si)
2024/02/29(木) 16:10:58.46ID:wvTonBo10 しらんけど、今どきだと最適化されるかもしれんね
1+2+・・・+99+100
こんな計算も(1+100)x 50で最適化される記事が昔あったような
1+2+・・・+99+100
こんな計算も(1+100)x 50で最適化される記事が昔あったような
555デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/29(木) 16:38:23.25ID:z2rRJOdi0 こんな計算って、そのレベルでコンパイラ任せにしてるのか
556デフォルトの名無しさん (ササクッテロロ Sp03-B158)
2024/02/29(木) 17:09:00.84ID:QhPTi9Tjp >>554
知らんけど、今は定数は先に計算しちゃうから、その式は1発答えだけになるような
知らんけど、今は定数は先に計算しちゃうから、その式は1発答えだけになるような
557デフォルトの名無しさん (ワッチョイ 46a3-TKrs)
2024/02/29(木) 17:09:33.30ID:zz2EilBV0 > 1+2+・・・+99+100
最適化というか、畳み込みで 5050に置き換えられるかと
最適化というか、畳み込みで 5050に置き換えられるかと
558デフォルトの名無しさん (ワッチョイ caac-o+si)
2024/02/29(木) 18:55:44.88ID:wvTonBo10 例が悪かった、もちろん定数は一発計算してメモリに固定されるけど、
変数を含んでても、冗長計算を変形してくれるコンパイラが出て、gccもそのアルゴリズムを採用したことが昔あったような。
変数を含んでても、冗長計算を変形してくれるコンパイラが出て、gccもそのアルゴリズムを採用したことが昔あったような。
559はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4350-a3My)
2024/02/29(木) 19:13:29.86ID:eV7kgdtT0 数値計算関連の関数はコンパイラによる最適化がなくても関数の内部が複雑な場合分けで対処してることが多いと思う。
GNU のやつとかだいぶんごちゃごちゃしてる。
GNU のやつとかだいぶんごちゃごちゃしてる。
560デフォルトの名無しさん (ワッチョイ 6763-9+AH)
2024/02/29(木) 19:19:48.52ID:z2rRJOdi0 人間が思いも付かなかったアルゴリズムで解いて見せたりして
人間が解析しても何故正しいかが分からなくなる
人間が解析しても何故正しいかが分からなくなる
561デフォルトの名無しさん (ワッチョイ 4aae-8VSo)
2024/03/01(金) 02:42:07.06ID:4OWvqJMX0 floatが絡むと誤差の出方が変わって結果が変わるから、式を変形するような最適化は不要だ
変形しても良いよというのが-ffast-mathだな
変形しても良いよというのが-ffast-mathだな
562デフォルトの名無しさん (ワッチョイ ab4e-7bv0)
2024/03/07(木) 00:36:21.20ID:D7Ff69360 typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t sighandler);
signal関数の第1引数のシグナル番号(signum)と第2引数のハンドラ関数が実際に呼ばれたときに引数に入るシグナル番号(1行目の引数のint)は必ず一致する認識ですがあっていますか?
その場合はハンドラ関数では引数に入るシグナル番号は最初から分かっているはずですが、わざわざ引数にシグナル番号を取っている理由はなんでしょうか。シグナル番号によって処理を分岐するデカいハンドラ関数を作るくらいしか思いつきませんでした。
sighandler_t signal(int signum, sighandler_t sighandler);
signal関数の第1引数のシグナル番号(signum)と第2引数のハンドラ関数が実際に呼ばれたときに引数に入るシグナル番号(1行目の引数のint)は必ず一致する認識ですがあっていますか?
その場合はハンドラ関数では引数に入るシグナル番号は最初から分かっているはずですが、わざわざ引数にシグナル番号を取っている理由はなんでしょうか。シグナル番号によって処理を分岐するデカいハンドラ関数を作るくらいしか思いつきませんでした。
563デフォルトの名無しさん (ワッチョイ 9f79-rZWy)
2024/03/07(木) 01:20:52.75ID:yhOhiWWp0 時間の無駄だからsignalのことは忘れなさい
時代遅れのCランタイムで本当に役立つものはごく少数しかない
そんな化石はスルーしてOSに用意された目的に合うAPIを直接使いなさい
Cランタイムのソースコードがある処理系なら読んでみると良い
時代遅れのCランタイムで本当に役立つものはごく少数しかない
そんな化石はスルーしてOSに用意された目的に合うAPIを直接使いなさい
Cランタイムのソースコードがある処理系なら読んでみると良い
564デフォルトの名無しさん (ワッチョイ ef3c-qSkN)
2024/03/07(木) 04:56:12.94ID:3rDFlX/H0 signalの代替は無理だろ
ランタイム自作しろとか言うのか?
sigalrm使うなぐらいならわかるが
ランタイム自作しろとか言うのか?
sigalrm使うなぐらいならわかるが
565デフォルトの名無しさん (ササクッテロロ Sp4f-/BY0)
2024/03/07(木) 10:24:21.94ID:m0jtu/KQp OS機能呼び出すとか移植性無視かw
566デフォルトの名無しさん (ワッチョイ efe7-Y1S9)
2024/03/07(木) 10:26:04.98ID:u0AQ7cvO0 >>565
今は環境に合わせて移植するのではなく、環境を移植するのが主流だよ
今は環境に合わせて移植するのではなく、環境を移植するのが主流だよ
567はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 10:26:06.80ID:Qh7cJyBm0 >>562
> 必ず一致する認識ですがあっていますか?
正しい。
> わざわざ引数にシグナル番号を取っている理由
Rationale に書かれていないのではっきりしたことはわからない。
おそらく Unix でそうなってたのを追認しただけだと思う。
> 必ず一致する認識ですがあっていますか?
正しい。
> わざわざ引数にシグナル番号を取っている理由
Rationale に書かれていないのではっきりしたことはわからない。
おそらく Unix でそうなってたのを追認しただけだと思う。
568はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 10:29:39.62ID:Qh7cJyBm0569デフォルトの名無しさん (スップ Sdbf-iW2Q)
2024/03/07(木) 12:06:04.83ID:HvQLfDgAd 構造体やポインターを理解できたら、C言語をマスターしたと言えますか?
570はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/07(木) 12:44:05.75ID:Qh7cJyBm0 >>569
練習用の題材ではなく (自分なりに) 意味があるプログラムを書けたあたりが
一応のマスター (あくまで最低限の出発点だが!) だろうと個人的には思ってる。
プログラミング言語は道具なんだから道具として使えることが重要で、
言語の要素を何個理解したなんてのはたいした指標にならない。
練習用の題材ではなく (自分なりに) 意味があるプログラムを書けたあたりが
一応のマスター (あくまで最低限の出発点だが!) だろうと個人的には思ってる。
プログラミング言語は道具なんだから道具として使えることが重要で、
言語の要素を何個理解したなんてのはたいした指標にならない。
571デフォルトの名無しさん (ワッチョイ 9f11-5NsN)
2024/03/07(木) 13:28:05.42ID:GWVV9gt00 1000行程度のプログラムがすらすら一日で書けたら卒業
572デフォルトの名無しさん (ワッチョイ 0f2a-AlNe)
2024/03/07(木) 14:06:12.94ID:4AOndewA0 三行半で済む処理をダラダラ1万行ぐらいに増やすのは、得意なんだけどなあ。
573デフォルトの名無しさん (ワッチョイ 9b63-ZLJX)
2024/03/07(木) 15:29:11.48ID:MNNvXb/X0 それはそれで才能
574デフォルトの名無しさん (ワッチョイ 1f5c-0W2u)
2024/03/07(木) 15:56:22.94ID:tpHaFcPx0575デフォルトの名無しさん (ワッチョイ 9b0f-0/6E)
2024/03/07(木) 20:44:25.94ID:yfQHOJuW0 >>564
signal()なんて使わず、せめてsigaction()にしろということでは?
signal()なんて使わず、せめてsigaction()にしろということでは?
576デフォルトの名無しさん (ワッチョイ 4f4c-lvv7)
2024/03/08(金) 18:40:01.38ID:6aUIMz1F0 >>562
デカいハンドラ関数を作る意図はなくても
同じようで異なる処理(複数のsigal番号の処理をする場合とか)をする時に
入口は一つにしておいて入力パラメータで処理を振り分けるとか普通の設計だと思うが。
わかりやすい例がWIN32APIのWindowProc。
あれがメッセージ番号毎に関数エントリを登録する形式だったら煩雑なことこの上ないだろ。
デカいハンドラ関数を作る意図はなくても
同じようで異なる処理(複数のsigal番号の処理をする場合とか)をする時に
入口は一つにしておいて入力パラメータで処理を振り分けるとか普通の設計だと思うが。
わかりやすい例がWIN32APIのWindowProc。
あれがメッセージ番号毎に関数エントリを登録する形式だったら煩雑なことこの上ないだろ。
577デフォルトの名無しさん (ワッチョイ 9b63-ZLJX)
2024/03/08(金) 18:58:33.73ID:iEWrXUyW0 Windowってそんなsignalの使い方しないでしょう
578はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b32-FATS)
2024/03/08(金) 19:33:39.28ID:KTmiotGH0 >>577
そういう話じゃないから文脈を掴んで。
そういう話じゃないから文脈を掴んで。
579デフォルトの名無しさん (スップ Sd02-R4O2)
2024/03/10(日) 23:22:14.50ID:CPrZIOdkd580デフォルトの名無しさん (ワッチョイ 8279-bGIP)
2024/03/11(月) 20:07:11.13ID:comBc+xk0 もうC言語は一旦終わりでいいから別の事やりなよ
結局Cだけの知識じゃ何もできんのよ
Cの知識はいざ何か作ろうとなった時に活きてくるよ
結局Cだけの知識じゃ何もできんのよ
Cの知識はいざ何か作ろうとなった時に活きてくるよ
581デフォルトの名無しさん (ワッチョイ 82ac-sV0L)
2024/03/11(月) 21:49:00.76ID:QCWizl2S0 プログラマ目指して挫折する人は、別に作りたいものがなくて文法ばかりを勉強するタイプかも。
文法は大事だけど、それ自体はあんまり役に立たないし調べれば済むことに時間をかけるのは程々に
合理的なアルゴリズムを瞬時に思いついて言語に落とし込めるかが大事で、これは経験。
文法は大事だけど、それ自体はあんまり役に立たないし調べれば済むことに時間をかけるのは程々に
合理的なアルゴリズムを瞬時に思いついて言語に落とし込めるかが大事で、これは経験。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 【映画】『クレヨンしんちゃん』 中国で公開延期 対日報復、エンタメに波及 [冬月記者★]
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- ウッドデッキで調子こいてたやついたじゃん
- 🦉エッホエッホ アンパンマンは猫舌って伝えなきゃ
- えんやすー
- 中国人「昔の仇を取る」「高市は狂ってる。制裁すればいい」「高市はことの重大さを認識してない」 [931948549]
