C言語って設計が悪いから難しく感じるだけ
1デフォルトの名無しさん
2026/03/24(火) 10:14:24.22ID:iaVEWJjC ポインタが難しいわけでもないし、単に分かりにくい設計が諸悪の根源。
232デフォルトの名無しさん
2026/05/17(日) 00:21:38.18ID:sZl86DxD >>231
76H
76H
233デフォルトの名無しさん
2026/05/17(日) 08:15:32.05ID:hzDNIoZ4 なぜかC9H(Ret)だけ覚えてる
初見の関数どこで関数が終るのか目星をつけるのは今でも変わらないね
初見の関数どこで関数が終るのか目星をつけるのは今でも変わらないね
234💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/18(月) 03:58:06.70ID:X5sfaAzO 🎯👈👈👈👈👈
🤜💥ABC💯🌴
↑PCG: Programmable
🤜💥ABC💯🌴
↑PCG: Programmable
235💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/18(月) 04:00:32.21ID:X5sfaAzO 🎯👈👈👈👈👈
🤜💥ABC💯🌴
↑PCG: Programmable Character Generator
↑by X1シリーズ
🤜💥ABC💯🌴
↑PCG: Programmable Character Generator
↑by X1シリーズ
236デフォルトの名無しさん
2026/05/18(月) 11:26:46.08ID:5A1Ebijf237デフォルトの名無しさん
2026/05/18(月) 12:01:12.39ID:jQf+jbSy voidさんの本か
読んでみたいような読みたくないような
読んでみたいような読みたくないような
238デフォルトの名無しさん
2026/05/18(月) 21:43:34.88ID:GU18Es67 止めとけ
本がでた頃に2chに本人がきたけど本の内容酷評されたりおちょくられたりで撃退されてたw
本がでた頃に2chに本人がきたけど本の内容酷評されたりおちょくられたりで撃退されてたw
239デフォルトの名無しさん
2026/05/18(月) 22:44:51.38ID:3S4Q09d6 1. Effective C
2. Modern C
3. SEI CERT C Coding Standard
Effective Cは第2版がModern Cは第3版が出てる
SEI CERT C Coding StandardはWebで読める
2. Modern C
3. SEI CERT C Coding Standard
Effective Cは第2版がModern Cは第3版が出てる
SEI CERT C Coding StandardはWebで読める
240デフォルトの名無しさん
2026/05/18(月) 23:47:15.86ID:zqbhNErD おすすめ情報元紹介ありがとうございます。
英語文献はブラウザで翻訳できるところは読むようになりました。洋書を読む方は自分で翻訳ですか、すごいですね、、、
英語文献はブラウザで翻訳できるところは読むようになりました。洋書を読む方は自分で翻訳ですか、すごいですね、、、
241デフォルトの名無しさん
2026/05/20(水) 00:32:16.01ID:K4ijhElN 俺はCをやるにあたって「はじめての8086」を読めと言われた
「はじめての486」も併せて買ったけど積ん読した
「はじめての486」も併せて買ったけど積ん読した
242デフォルトの名無しさん
2026/05/20(水) 00:39:25.62ID:7EfSCYUZ 6502がいちばんおもしろかったなぁ。
243デフォルトの名無しさん
2026/05/20(水) 00:45:15.30ID:iGvoShit 初めて読むマシン語、8086、486ナツカシス
244💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/20(水) 01:23:44.91ID:aoS52wMR 4004で電卓戦争やってた人いますか?
245デフォルトの名無しさん
2026/05/20(水) 10:35:47.92ID:VmWwNsDH246デフォルトの名無しさん
2026/05/20(水) 21:23:12.52ID:Z0u59BFL >>242
だがCをインプリメントするとしたら最悪なCPUだよなあ
だがCをインプリメントするとしたら最悪なCPUだよなあ
247デフォルトの名無しさん
2026/05/20(水) 21:45:21.76ID:ZgHSF/QP >>246
ゼロページが変数として使える最強やないか
ゼロページが変数として使える最強やないか
248デフォルトの名無しさん
2026/05/23(土) 13:44:55.22ID:ULl5YR4s 09良いよね
http://www.st.rim.or.jp/~nkomatsu/mc680x/MC6809.html
http://www.st.rim.or.jp/~nkomatsu/mc680x/MC6809.html
249デフォルトの名無しさん
2026/05/23(土) 19:04:49.27ID:p40Ic9M9 ざいろぐちゃん
もすちゃん
もとらちゃん
もすちゃん
もとらちゃん
250デフォルトの名無しさん
2026/05/23(土) 21:41:01.42ID:skqHV7XZ Abstract Data type(ADT)を使ってstackとqueueを、固定長配列、動的配列、linked listで書く演習をやっている。逆ポーランド記法の電卓とか括弧の対応が正しいかというやつ。コードを読めば一応わかるけど一から書けといわれたら無理。stackとqueueは3種類の方法で自在に書けないと試験合格は難しいらしい。もう、6パターンまる覚えするためにひたすら書いているけどいちいちmakeするのが面倒くさい。
来週からはビット演算。そのあとI/Oと標準/数学ライブラリとやって、これでCは一旦終わり。後期からはアセンブラ。どんどん難しくなるんだけど方向性が情報系とは逆な気がする。あっちはあっちで大変そうだけど。
来週からはビット演算。そのあとI/Oと標準/数学ライブラリとやって、これでCは一旦終わり。後期からはアセンブラ。どんどん難しくなるんだけど方向性が情報系とは逆な気がする。あっちはあっちで大変そうだけど。
251デフォルトの名無しさん
2026/05/23(土) 21:57:34.46ID:TIyii4ui へー、高度なことやってるねー。MIT系の教科書かなぁ。
252デフォルトの名無しさん
2026/05/23(土) 22:13:45.25ID:fvZ+wgIe なんか80年代の教育内容だね
Secure Codingについては学んでるんだろうか
Secure Codingについては学んでるんだろうか
253デフォルトの名無しさん
2026/05/23(土) 23:18:15.41ID:YY7E06NG Securityについては、interface(ヘッダ)とimplematation(.cの実体)を使って、high cohesionとlow couplingを意識しろくらいことしか学んでないです。もっと高度なやり方があるんだと思いますが、今のところ応用まで手が出ないです。。。
254デフォルトの名無しさん
2026/05/23(土) 23:29:27.66ID:j4Q0q/xv それはまあCの普通の書き方というか昔々からのよくある設計の方針みたいな話で、セキュアコーディングとは何ら関係ない
本質的にはCに限った話でもないし、もっと言えばその回答は何も言ってないのと同じくらい内容がない
大体ヘッダとソース使ってってCならそらそうだろw
本質的にはCに限った話でもないし、もっと言えばその回答は何も言ってないのと同じくらい内容がない
大体ヘッダとソース使ってってCならそらそうだろw
255デフォルトの名無しさん
2026/05/23(土) 23:41:36.02ID:mQjs53zr セキュアコーディングという私の知らない概念かあるんですね。これから習う内容に入っていれば良いんだけど
256デフォルトの名無しさん
2026/05/23(土) 23:46:06.27ID:gde19rTM メモリを直接操作できる故の話よね
いうてOSやマシン語の知見も必要だし人間が気をつけるにも限界があるから
現実的にはコンパイラや周辺ツールを活用するのが常套(いまならAIもある)
体系だって学ぶ以上に指摘くらって得るものが大きい
いうてOSやマシン語の知見も必要だし人間が気をつけるにも限界があるから
現実的にはコンパイラや周辺ツールを活用するのが常套(いまならAIもある)
体系だって学ぶ以上に指摘くらって得るものが大きい
257💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/23(土) 23:52:28.24ID:cAwIaPoW 構造体型のtypedef宣言とそれを操作する関数のプロトタイプ群をヘッダで宣言してエクスポートする。実体はソースに書く。継承なしのカプセル化であり「データ抽象化」と呼ばれるものである。
258デフォルトの名無しさん
2026/05/23(土) 23:54:43.44ID:CG4aH5xK error handlingて項目が今後の項目にあった。assert.hやsignal.hなど。これがセキュアコーディングの入り口かな? 今はここまで手を広げられないけど
259デフォルトの名無しさん
2026/05/24(日) 00:04:44.66ID:tzxvC/3+ いまはいったん忘れていいよ
後期でアセンブラ着手しだしたら
毎日のようにある脆弱性のニュースと頭の中でつながるから
後期でアセンブラ着手しだしたら
毎日のようにある脆弱性のニュースと頭の中でつながるから
260デフォルトの名無しさん
2026/05/24(日) 00:10:43.42ID:PG7LhSHM >>257
ADTの前方宣言の構造体(incomplete)てやつですね。まさに写経中。freeするのがムズイ。別の関数でmallocしたのをきちんと順を追ってfreeしてやるのが難しい。意識せずにできなきゃいけないんだろうけど。パターンだからそのうち覚えられるかなあ
ADTの前方宣言の構造体(incomplete)てやつですね。まさに写経中。freeするのがムズイ。別の関数でmallocしたのをきちんと順を追ってfreeしてやるのが難しい。意識せずにできなきゃいけないんだろうけど。パターンだからそのうち覚えられるかなあ
261デフォルトの名無しさん
2026/05/24(日) 00:33:21.14ID:YAn8aOoG 解放を忘れたり解放して場所を指したまま使ってしまったり人間はミスをする
特に複雑化して込み合ってくると見落としてミスる
だから現実にセキュリティホールなどが知らぬ間に生じて発見されて悪用されてきた
今はメモリ管理など含めた多くの問題の安全性を言語レベルで保証してくれるRust言語が登場したから移行できるなら移行すべきだけどね
特に複雑化して込み合ってくると見落としてミスる
だから現実にセキュリティホールなどが知らぬ間に生じて発見されて悪用されてきた
今はメモリ管理など含めた多くの問題の安全性を言語レベルで保証してくれるRust言語が登場したから移行できるなら移行すべきだけどね
262💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/24(日) 01:53:35.07ID:fAG7NgfK >>260
異なる型の2つの構造体が相互にリンクを持ち合う時、そして俺の知る限りその時にのみ、構造体のタグによる前方参照が必要。
他は別にtypedefした構造体を普通の型としてインスタンスを宣言するだけ。newは芋蔓式に次から次へと下請けのnewを呼ぶだろうしdeleteも同様。
頑張れ。
異なる型の2つの構造体が相互にリンクを持ち合う時、そして俺の知る限りその時にのみ、構造体のタグによる前方参照が必要。
他は別にtypedefした構造体を普通の型としてインスタンスを宣言するだけ。newは芋蔓式に次から次へと下請けのnewを呼ぶだろうしdeleteも同様。
頑張れ。
263💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/24(日) 02:31:18.42ID:fAG7NgfK ある構造体を型としてtypedefしようと思えば、もしそのメンバーとして別の構造体型が用いられていればその構造体型もその時点でtypedefされていなければならない。それをするためにはその別の構造体型のtypedefが行われている別のヘッダをインクルードするのが普通で、それは芋蔓式のインクルードになる。ヘッダの多重インクルード対策は簡単なので問題は起こらないと思う。
264💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/24(日) 02:37:41.10ID:fAG7NgfK ていうかC++もそうでしょ?
265デフォルトの名無しさん
2026/05/24(日) 12:03:35.04ID:xUBIupda typedef struct { A a; } B;
typedef struct { int i; } A;
typedef struct { int i; } A;
266デフォルトの名無しさん
2026/05/24(日) 12:06:00.15ID:xUBIupda struct A_;
typedef struct { struct A_ a; } B;
typedef struct A_ A;
typedef struct { struct A_ a; } B;
typedef struct A_ A;
267デフォルトの名無しさん
2026/05/24(日) 13:09:36.52ID:s4jEs3HF268デフォルトの名無しさん
2026/05/24(日) 13:22:13.47ID:Qix84Ywx // とあるソース.c
#include "B.h" // Bを使いたい
┗#include "A.h" // BはAを使うのでB.h内部でA.hをインクルードする
#include "A.h" // すでにB.hのなかでA.hがインクルードされているのでインクルードガードにより重複よみこみされない
#include "B.h" // Bを使いたい
┗#include "A.h" // BはAを使うのでB.h内部でA.hをインクルードする
#include "A.h" // すでにB.hのなかでA.hがインクルードされているのでインクルードガードにより重複よみこみされない
269デフォルトの名無しさん
2026/05/24(日) 13:37:30.43ID:Qix84Ywx // 相互参照はインクルードでは対応できないで前方宣言する
struct B;
struct A { …, B *b, … };
struct B { …, A *a, … };
struct B;
struct A { …, B *b, … };
struct B { …, A *a, … };
270💾キモバカじじい ◆Rn9d66GbJRuf
2026/05/24(日) 13:46:03.43ID:fAG7NgfK こんな感じにできない?(うろ覚え)
typedef struct tag_1
{
struct tag_2* ptr2;
} Type1;
typedef struct tag_2
{
struct tag_1* ptr1;
} Type2;
typedef struct tag_1
{
struct tag_2* ptr2;
} Type1;
typedef struct tag_2
{
struct tag_1* ptr1;
} Type2;
271デフォルトの名無しさん
2026/05/24(日) 14:59:47.15ID:/jkmbLum オンラインのコンパイラでしか試してないけどC++も
class A { class B *b; };
class B { class A *a; };
みたいな記法は許容されてるな
Cはtypedefしないと毎回structが必要になるから省略できるC++とは標準スタイルが違いそう
class A { class B *b; };
class B { class A *a; };
みたいな記法は許容されてるな
Cはtypedefしないと毎回structが必要になるから省略できるC++とは標準スタイルが違いそう
272デフォルトの名無しさん
2026/05/24(日) 22:21:11.99ID:h/YQfM5+ C言語が難しいなんて思うやつは、C++を少しでも知ったら発狂して自殺しそうw
273デフォルトの名無しさん
2026/05/25(月) 09:43:47.28ID:a1IT/WC2 >>270
こういう書き方大っ嫌い
こういう書き方大っ嫌い
274デフォルトの名無しさん
2026/05/25(月) 12:27:59.47ID:ZVLpVWSF 後方参照を許さないC言語が時代遅れなことに気づかないとな
Cコンパイラしか提供されない組み込み環境なら仕方ないが
そうでないならC言語を今すぐ捨てるべきだ
Cコンパイラしか提供されない組み込み環境なら仕方ないが
そうでないならC言語を今すぐ捨てるべきだ
275デフォルトの名無しさん
2026/05/26(火) 19:02:11.19ID:4AYldPgi >>274
C言語はUNIX用のプログラミング言語なんだが?
C言語はUNIX用のプログラミング言語なんだが?
276デフォルトの名無しさん
2026/05/26(火) 22:23:22.62ID:/r0Ypo2p x 設計が悪い
o 設計がシンプル
o 設計がシンプル
277デフォルトの名無しさん
2026/05/26(火) 23:21:22.65ID:GWUdZZ4M 設計が悪いも何も、ポータブルなアセンプラとして計算機に寄り添う形で設計してあって、それは今も変わらないのでは
今となっては古いと言われればそうかもしれないけど、古いことは別に何も悪いことじゃない
今となっては古いと言われればそうかもしれないけど、古いことは別に何も悪いことじゃない
278デフォルトの名無しさん
2026/05/27(水) 08:17:35.98ID:08gSGm1k アセンブラはカッタルイからこんなん作ったよ
なレベルの言語に文句言ってもなぁ
なレベルの言語に文句言ってもなぁ
279デフォルトの名無しさん
2026/05/27(水) 09:54:13.42ID:sb5fUGY6 もともとのC言語はハードウェアの性能を100%出せることを前提に設計されているから
機種依存がわんさかとある言語
機種依存がわんさかとある言語
280デフォルトの名無しさん
2026/05/27(水) 10:10:20.11ID:088jDWOf >>279
UNIXの仕様を想定して作られたC言語は、別のOSでは前提条件が違っていて勝手にC言語を移植されて問題になった。
UNIXの仕様を想定して作られたC言語は、別のOSでは前提条件が違っていて勝手にC言語を移植されて問題になった。
281デフォルトの名無しさん
2026/05/27(水) 10:13:32.14ID:zw6fajFz アセンブラがかったるいからと言って
{とか
}とか
=>とか醜い表現使うなっての
{とか
}とか
=>とか醜い表現使うなっての
282デフォルトの名無しさん
2026/05/27(水) 11:03:05.79ID:sb5fUGY6 自分の知らないC言語のようだ
283デフォルトの名無しさん
2026/05/27(水) 11:13:41.19ID:vt0HUY+p #define begin {
#define end }
#define end }
284デフォルトの名無しさん
2026/05/27(水) 13:28:13.51ID:B9J/OP7Y ゲーッ。17章も参照のこと。
285デフォルトの名無しさん
2026/05/30(土) 01:28:49.19ID:Jsn+beB5 begin/endをdefineするのは懐かしいなぁ。
やったよねぇ、Pascal風の言語にしちゃうやつ。
おれはstructuerにfunction入れてsmalltalk風に使ってた。C++できる以前。
やったよねぇ、Pascal風の言語にしちゃうやつ。
おれはstructuerにfunction入れてsmalltalk風に使ってた。C++できる以前。
286デフォルトの名無しさん
2026/05/30(土) 07:01:10.70ID:m3T0RFG6 プリプロセッサの素晴らしく駄目な使い方だな
287デフォルトの名無しさん
2026/05/30(土) 09:48:01.35ID:XQCyRiRg288デフォルトの名無しさん
2026/05/30(土) 10:50:22.35ID:Jsn+beB5 pascal風の簡易DSLをヘッダーだけで作成して、
最上位の業務階層は、簡易DSLで保守。
pascal部隊もいたので。
最上位の業務階層は、簡易DSLで保守。
pascal部隊もいたので。
289デフォルトの名無しさん
2026/05/30(土) 11:01:27.30ID:Jsn+beB5 可読性の問題だよねぇ。C言語でも効率より可読性をとれば、わかりやすくはなる。
だけど高級アセンブラなので、効率がよく可読性の高い「設計と構築」が求められる。
だけど高級アセンブラなので、効率がよく可読性の高い「設計と構築」が求められる。
290デフォルトの名無しさん
2026/05/30(土) 11:10:01.49ID:Jsn+beB5 プリプリプロセッサを作らないならば、
プリプロセッサだけで効率と可読性を求める。
プリプロセッサだけで効率と可読性を求める。
291デフォルトの名無しさん
2026/05/30(土) 11:17:37.55ID:lVeD90kH ラダー回路が最高
292デフォルトの名無しさん
2026/05/30(土) 12:08:02.72ID:U80OJ//1 初期のC++がただのプリプロセッサだったというのは皮肉
293デフォルトの名無しさん
2026/05/30(土) 16:06:18.89ID:x3RS+DzD ポインタと配列の違いとかまあ微妙だわな。全部ポインタでええやろとは思う
294デフォルトの名無しさん
2026/05/30(土) 17:23:34.48ID:QKLBXZIC さらにポインタはintの使い方の一つという扱いで補って、あれアセンブラのままがシンプルでよかったかな?
295デフォルトの名無しさん
2026/05/30(土) 19:05:09.28ID:fcUvegOR intじゃ代替出来んわな
296デフォルトの名無しさん
2026/05/30(土) 19:22:21.90ID:QKLBXZIC ちょっと厳しかったですか
やっぱりポインタが持つ型というものは、生成コードに間接的にしか表れませんが偉大ですね
やっぱりポインタが持つ型というものは、生成コードに間接的にしか表れませんが偉大ですね
297デフォルトの名無しさん
2026/05/30(土) 20:00:52.87ID:OeNHKzAz まあunsigned charとかintとか設計悪いよな
i8 <- 8bit符号あり整数
u64 <- 64bit符号なし整数
な感じで、i8/i16/i32/i64、u8/u16/u32/u64、f32/f64とかでええやろ
ポインタ型も最初からpi8/pvoidみたいなの使えるようにしとけ
構造体やクラス(C++)もあるから*は必要だが
i8 <- 8bit符号あり整数
u64 <- 64bit符号なし整数
な感じで、i8/i16/i32/i64、u8/u16/u32/u64、f32/f64とかでええやろ
ポインタ型も最初からpi8/pvoidみたいなの使えるようにしとけ
構造体やクラス(C++)もあるから*は必要だが
298デフォルトの名無しさん
2026/05/30(土) 20:57:47.70ID:XFlMbqow >>297
C言語はUNIXを作るために作ったと何度、言われればわかるのか?
C言語はUNIXを作るために作ったと何度、言われればわかるのか?
299デフォルトの名無しさん
2026/05/30(土) 21:34:36.66ID:m3T0RFG6 メモリが56KBとかのマシンで作られた言語だからな
仕様なんて必要最低限しかない
仕様なんて必要最低限しかない
300デフォルトの名無しさん
2026/05/30(土) 21:53:42.53ID:m3T0RFG6 もともとの仕様な
301デフォルトの名無しさん
2026/05/30(土) 22:33:31.82ID:fcUvegOR こういう>>297みたいな「dmrより俺の方が分かってる」みたいな手合いって世界中にいるんだろうな
誰かのやった仕事に対して何十年も経った立場からキャンキャン吠えるとかそんな恥知らずなマネよく出来るなw
誰かのやった仕事に対して何十年も経った立場からキャンキャン吠えるとかそんな恥知らずなマネよく出来るなw
302デフォルトの名無しさん
2026/05/31(日) 00:13:03.27ID:A0lcmmAm 仕様の解釈に柔軟性を持たせたから今でも現役で残っているとも言える
303デフォルトの名無しさん
2026/05/31(日) 11:59:55.21ID:iw1445Th >ポインタ型も最初からpi8/pvoidみたいなの使えるようにしとけ
>構造体やクラス(C++)もあるから*は必要だが
矛盾してるな
構造体aのポインタをpaとするルールを入れろと言ってるようなもの
それなら*aと何も変わらん
>構造体やクラス(C++)もあるから*は必要だが
矛盾してるな
構造体aのポインタをpaとするルールを入れろと言ってるようなもの
それなら*aと何も変わらん
304デフォルトの名無しさん
2026/06/01(月) 05:02:59.72ID:nDSJqHbn 結局上流の仕様を深く考えられる俺たちがC言語設計しとけばだいぶ世の中変わったよなあって話だな
ポインタ一つとってもvoid*でポイドポインタにキャストできる利便性と引き換えに本来の型情報喪失っていう致命的なミスしてるしメモリバグの要因になってる
当時の人は何を思ったのやら
ポインタ一つとってもvoid*でポイドポインタにキャストできる利便性と引き換えに本来の型情報喪失っていう致命的なミスしてるしメモリバグの要因になってる
当時の人は何を思ったのやら
305デフォルトの名無しさん
2026/06/01(月) 07:31:28.81ID:HZwAN0EX だから、アセンブラ直接使いたくなかっただけだから
変数の型なんてレジスタの延長としか考えて無いんだよ
変数の型なんてレジスタの延長としか考えて無いんだよ
306デフォルトの名無しさん
2026/06/01(月) 07:36:06.85ID:RuL1T6Db Cコンパイラしかない組み込み環境でないのならC言語を今すぐ捨てろ
ちゃんとした強い型付け言語を使え
ちゃんとした強い型付け言語を使え
307デフォルトの名無しさん
2026/06/01(月) 08:28:53.94ID:Um4FaBea むかし某旧帝大の講義でヌルポインタを全ビットゼロのポインタのことだとか説明してるのを聴いたときは
所詮日本ってこの程度なんだなあとガッカリしたな
所詮日本ってこの程度なんだなあとガッカリしたな
308デフォルトの名無しさん
2026/06/01(月) 09:15:17.64ID:Y8Ze0X4r309デフォルトの名無しさん
2026/06/01(月) 09:28:24.03ID:UpLtcaM+310デフォルトの名無しさん
2026/06/01(月) 09:43:30.17ID:2Fig2KkG #define NULL ((void *)0)
だもんなあ
しかし、アドレス 0 が有効なアドレスであるシステムならまた違った値になっているだろう
だもんなあ
しかし、アドレス 0 が有効なアドレスであるシステムならまた違った値になっているだろう
311デフォルトの名無しさん
2026/06/01(月) 10:53:28.39ID:zavtC8M7 #define break exit(-1)
312デフォルトの名無しさん
2026/06/01(月) 12:41:39.70ID:z7Brjm4N >>306
Rustと以外でおすすめある?
Rustと以外でおすすめある?
313デフォルトの名無しさん
2026/06/01(月) 12:43:04.75ID:orNocmRO314デフォルトの名無しさん
2026/06/01(月) 12:45:46.65ID:Y/faLFgX CPUのアーキテクチャ次第だからヌルポは0じゃ無くて定義次第
315デフォルトの名無しさん
2026/06/01(月) 12:46:30.75ID:orNocmRO >>314
なるへそ
なるへそ
316デフォルトの名無しさん
2026/06/01(月) 13:08:32.64ID:Um4FaBea317デフォルトの名無しさん
2026/06/01(月) 13:15:11.22ID:Ud3VbC+T318デフォルトの名無しさん
2026/06/01(月) 13:29:41.12ID:Gju4oLNk319デフォルトの名無しさん
2026/06/01(月) 13:58:22.88ID:Ud3VbC+T >>318
C言語の規格書 ISO/IEC9899 にて
NULLポインタは値0と定められています
CPUアーキテクチャとは一切無関係です
プログラミング言語Cが定めているためどのCPUアーキテクチャにおいても同じ値0です
C言語の規格書 ISO/IEC9899 にて
NULLポインタは値0と定められています
CPUアーキテクチャとは一切無関係です
プログラミング言語Cが定めているためどのCPUアーキテクチャにおいても同じ値0です
320デフォルトの名無しさん
2026/06/01(月) 14:44:22.09ID:4HzhGRP/321デフォルトの名無しさん
2026/06/01(月) 15:00:03.91ID:1czkfGd6 ゼロ番地にアクセス出来ないとかモトローラ系とかディスってる?
322デフォルトの名無しさん
2026/06/01(月) 20:01:08.52ID:2Fig2KkG >>319
どのCの規格書だ?C89、C99、C11のドラフトっぽいもので確認すると
stddef.h の所で以下のように記述されている
The macros are
NULL
which expands to an implementation-defined null pointer constant; and ...
どのCの規格書だ?C89、C99、C11のドラフトっぽいもので確認すると
stddef.h の所で以下のように記述されている
The macros are
NULL
which expands to an implementation-defined null pointer constant; and ...
323322
2026/06/01(月) 20:29:11.18ID:2Fig2KkG すまぬ
C11の 6.3.2.3 Pointers の 3 に以下の詰があった
確かに 0、もしくは void * にキャストされた 0 だわ
An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
C11の 6.3.2.3 Pointers の 3 に以下の詰があった
確かに 0、もしくは void * にキャストされた 0 だわ
An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
324デフォルトの名無しさん
2026/06/01(月) 20:41:19.52ID:zG8I8hLe C11まだ導入してないな
C99には移行したけど
C99には移行したけど
325デフォルトの名無しさん
2026/06/01(月) 20:46:31.22ID:OMUIYmd4326デフォルトの名無しさん
2026/06/01(月) 20:50:25.71ID:A/7+PPzR >>325
数値0と定められている
数値0と定められている
327デフォルトの名無しさん
2026/06/01(月) 22:32:22.49ID:zavtC8M7 ほんまかいな!?
328デフォルトの名無しさん
2026/06/01(月) 22:49:47.77ID:2Fig2KkG >>325
ただのシンボルだという事は知らなかったわ
実装依存の話だが、仮想記憶のあるモダンOSならユーザーアドレス空間の0ページ目は潰しておいて
ページフォールトが発生するようにしているから、内部でもNULLは0にしているのがほとんどだろう
ただのシンボルだという事は知らなかったわ
実装依存の話だが、仮想記憶のあるモダンOSならユーザーアドレス空間の0ページ目は潰しておいて
ページフォールトが発生するようにしているから、内部でもNULLは0にしているのがほとんどだろう
329デフォルトの名無しさん
2026/06/01(月) 23:43:43.01ID:J16IyJIp null pointer constantとnull pointerは別のもの
330デフォルトの名無しさん
2026/06/02(火) 00:24:25.45ID:LrQcnY0k331デフォルトの名無しさん
2026/06/02(火) 02:23:41.62ID:mtjv5G02 整数0をnullポインタとするがnullポインタのビット表現は全ビット0とは限らない
となっているけど今現在nullポインタのビット表現が全0でない処理系は一つも存在しない
となっているけど今現在nullポインタのビット表現が全0でない処理系は一つも存在しない
レスを投稿する
ニュース
- 高市首相… 経歴詐称疑惑で米下院関係者が決定的証言「インターンだった」SNSで猛拡散 ★2 [少考さん★]
- 【北中米W杯】韓国のGS敗退が決定…W杯初勝利のDRコンゴが3位枠で初の決勝Tへ ★7 [阿弥陀ヶ峰★]
- 【サッカー】W杯32強決定! 日本はブラジルに勝利すれば『コートジボワールvsノルウェー』の勝者と対戦… 決勝トーナメント組み合わせ [冬月記者★]
- 【W杯】韓国敗退で、アジア枠減少を危惧する声 決勝T進出確定は日本とオーストラリアのみ「これは削られても仕方ない」★2 [ネギうどん★]
- ヒカキン、「娘の安全」のために過去最高額の引っ越しを報告「ランボルギーニのレヴエルトが買えるぐらいかかりました」 [muffin★]
- 【サッカーW杯】GS終了! 決勝トーナメント 32か国すべて出揃う! ポルトガル×クロアチア、日本×ブラジルなど注目カードが目白押し! [阿弥陀ヶ峰★]
- フランスパン工房🏡
- 【悲報】NHK「見たい人だけが支払うのは絶対にだめ。見る、見ないではなく全国民が払うべき」 [339035499]
- 【高市不人気】秋田県、収入増を目指して県庁や県警本部、高校、空港まで373施設もネーミングライツ対象するが応募2社…何がダメなのか [219241683]
- 米農家「私たちが利益が出る5キロ4000円のお米でもお茶碗1杯だと50円から60円。それが高いですかと問いたい」 [931948549]
- 【高市悲報】アニメキャラを「◯◯たん」って呼ぶ古のキモオタ、絶滅する🥺 [616817505]
- 【高市悲報】陸自、ガチで夜戦に本気 5億円超の複眼式暗視装置を続々購入wwwww [834922174]