Cでconst値を定義することは可能ですか?
#define N;
そして、ユーザーから入力を求めるよりも、scanf()を使用していますか?
もしそうなら、どのように?
Cでconst値を定義することは可能ですか?
#define N;
そして、ユーザーから入力を求めるよりも、scanf()を使用していますか?
もしそうなら、どのように?
#define
ed 値は通常の const ではありません。それらはプリプロセッサによって計算/変換されるため、コンパイル時に失われ、実行時に変更することはできません。
そのような a の構文#define
は、#define N 5
ではなく#define N;
プリプロセッサ マクロ定義の展開は、プリプロセス フェーズの実行時に設定されます。これは、コンパイルの大部分の前でもあります。
したがって、たとえば、 を実行すると、常に になり、#define N 5
それ以外のことはありません。N
5
あなたがそうするなら#define N my_global_integer
、それN
は常に でありmy_global_integer
、それ以外のものは決してありません。
だから私はあなたができると思います:
#include <stdio.h>
#define N my_global_integer
int my_global_integer;
int main() {
scanf("%d", &N);
printf("%d\n", N);
}
プリプロセッサ マクロN
は定数ですが、最終的に展開される変数はそうではありません。通常はアドバイスしませんが、この質問がパズルである場合、それが答えになる可能性があります。
いいえ。
を使用して定義したものdefine
は、実際のコンパイラがソース コードを見る前に、プリプロセッサによってテキストで置き換えられます。
その上、定数は変更されるべきではありません。それはあなたのアイデアに関してかなり明白な危険信号であるはずです。
いいえ、コンパイル時にプリプロセッサ#define
を使用して s がコードに挿入されるためです。実行時に変更することはできません。