
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> 引数だけでどこでどう判断しているのですか?
申し訳ありません、意味がわからないので、このご質問には回答できかねます。
> 関数形式マクロ dtaは戻り値が書いてないのに戻ります
関数形式マクロはあくまでもマクロであって関数ではありません。
プリプロセッサによって定義された通りに変換されるだけです。
この場合は、
> #define dta(a,b) ((a)+(b))
によって
> cc=dta(50,50);
は、
cc=((50)+(50));
へ変換されるだけです。
> priは戻り値が書いてないので何も起こりません
これが関数だと仮定しても、「戻り値が書いてない」としても「何も起こりません」というのは理解できません。これはまるで戻り値がない、もしくは戻り値を使用しない関数は意味がない、もしくは何もしないように聞こえますが、そういうことが言いたいのでしょうか。もしそうなら、そのお考えはまったく間違っています。
件の、
> pri(cc);
は、
> #define pri(dt) printf("%d\n",dt)
の定義に従いプリプロセッサによって、
printf("%d\n",cc)
へ変換されます。
「戻り値が書いてない」、この文の意味がわかりませんが、返還後の printf 関数には戻り値があります。この関数の戻り値を使うことは稀ですが。
No.1
- 回答日時:
純粋にコンパイラの立場から言えば (マクロはコンパイラが処理する前に展開されているので) 「判断」などということは一切しません. どういうことかというと, このプログラムをコンパイラに与えたとしても, 実際にコンパイラが見るのは (#include でインクルードされる <stdio.h> の分を無視すると)
int main(void)
{
int cc;
cc=((50)+(50));
printf("%d\n", cc);
return 0;
}
だけです. ここから何をどう「判断」すればよいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
パーサとコンパイラの違いって?
-
char型の配列の初期化について
-
PIC18Fで変数の受け渡し...
-
ALGOL・PL/Iのフリーのコンパイ...
-
Windows+postgreSQL+C言語によ...
-
「javac」は、何と読むのでしょ...
-
PICでのI2C通信でのマスタ、ス...
-
組込みC開発
-
cc と gcc の違い
-
#pragmaとは
-
bcpadのコンパイラのインストー...
-
リリースモードとデバッグモー...
-
OpenMAXというものについて、簡...
-
【COBOL】 END STATUSについて
-
変数の内容がコロコロ変わる、...
-
python エラー
-
[COBOL] ソースの復帰
-
エクセルのエラーメッセージ「4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
C++でデスクトップGUIアプリ開...
-
COBOLの論理演算子について質問...
-
組み込みソフト。ROM領域にデータ
-
printfなど、標準関数のソース...
-
cc と gcc の違い
-
リリースモードとデバッグモー...
-
パーサとコンパイラの違いって?
-
AIXとCOBOLについて
-
<conio.h>?
-
COBOLのALPHABET...
-
VC++の/Zm オプションについて
-
C++Builder → Visual C++ 移植...
-
C言語の規格
-
COBOLの論理演算子について
-
変数の内容がコロコロ変わる、...
-
Macで使えるC言語のコンパイラ...
-
PICでのI2C通信でのマスタ、ス...
-
最初に使う変数のゼロクリアに...
おすすめ情報