
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ご質問はprintf ( "%sは: %f\n", ptr, PI );行に於いて、"PI"はマクロをそのまま指定しているのに、何故ptrはマクロを変数に置き換えているか...だと思われます。
そこで幾つか実験をしてみました。
●char *ptr = CIRCLE_RATIO;
| | |
| | |
printf ( "%sは: %f\n", ptr, PI );
●char ptr [] = CIRCLE_RATIO;
| | |
| | |
printf ( "%sは: %f\n", ptr, PI );
上の2つの例は等価と思われ、どちらでも構わないと思われます。但し、私が使用しているコンパイラGNU Cではどちらも正常にコンパイルできますが、GNU g++では下の例だけがコンパイルできます。 つまりC++では最初の例は通らないことを考慮し、C言語だと言っても一応習慣として下の例をご使用になることをお勧めします。
さて...
●printf ( "%sは: %f\n", CIRCLE_RATIO, PI );
も正常にコンパイルと実行ができました。ソースの作者が何故そうしたかは私にも推測できません。きっと気持ち悪かったのではないでしょうか。
char *ptr ...と宣言することで、これが『文字列なんだ』ということを明確にしたかったのではないでしょうか。でもそれは単なる個人の習慣でしかないですよね...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSが全く分かりません、お助け...
-
DLLファイルの逆コンパイラにつ...
-
プログラム言語について c言語...
-
C言語について(初心者)
-
visual studio 2022でのC#プロ...
-
プログラミングc++を全く分か...
-
今ってプログラミング言語は何...
-
逆コンパイルと逆アセンブルの...
-
次の日本語の意味を教えて下さい
-
int16_t の _t は何?
-
Windows Formアプリからコンソ...
-
最初に聞かれたこと
-
Cのプログラムからアクセスでき...
-
プログラミング言語についてc++...
-
C#でTreeViewのCheckBoxのサイ...
-
c#のTLS1.2での通信について
-
プログラマー達は何故、プログ...
-
PIC12F1822でLED調光器を作りたい
-
C言語 関数、変数の宣言について
-
あってる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonにCでのexternはありますか
-
マクロの書き換え箇所がわかり...
-
c言語 グローバル変数
-
c言語、マクロについて
-
python 3.10で 同じlistに同じ...
-
Perlで変数中のエスケープされ...
-
CSVから構造体へ代入
-
UWSCにおける変数の扱い方
-
UTF-8で5~6バイトになる文字コ...
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
stable diffusionのエラー
-
Excel 1セル当りの文字数が2...
-
「1TB」のHDDに日本語は何字入...
-
DataGridViewの特定列に入力さ...
-
ピクセル,dpiから容量(バイト...
-
Excel VBA メール作成について ...
-
バイト列とバイナリ列の違いが...
-
エクセルシート名の制限を変更...
おすすめ情報