• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一意の数字に置換されるマクロ)

C/C++で一意の数字に置換されるマクロを使いたい

このQ&Aのポイント
  • C/C++で、コンパイル時に一意の整数に置換されるマクロを使いたいです。
  • 例えば、printf("%d\n",__なにがし__); のようなコードを書くと、1, 2, 3のように絶対に被らない一意の数字に置換されるようなマクロが存在するのか知りたいです。
  • VC8の環境で使用できるマクロの情報も教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • colder
  • ベストアンサー率43% (30/69)
回答No.1

__COUNTER__

qOat
質問者

お礼

colderさん、返答ありがとうございます。 まさに自分が探していたものでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロに関して

    C言語・C++初心者です。 マクロにて、printfをレベル分けして出力したいと思っております。 下記のようにレベルを1,2に区分して、マクロを呼出して、printf上にそのレベルを出力させたいという意向です。頭ではこうしたいというものはまとまっておりますが、いざソースに起こすと、コンパイルエラーとなります。 そもそもの記述方法が検討違いなのかと思いますが、なかなかうまくいきません。 大変申し訳ございませんが、ご教授よろしくお願いいたします。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #include <stdio.h> // デバッグレベル1 #define DEBUGLV1(str) printf("LV[%d]:%s",1,str) // デバッグレベル2 #define DEBUGLV2(str) printf("LV[%d]:%s",2,str) int main() {  //-- 変数の宣言 --------------------  int iCnt; // ループカウンタt  //-- 変数の初期化 ------------------  iCnt = 0;  // ループ  for(iCnt=0; iCnt<2; iCnt++)  {   if(iCnt == 0)   {    DEBUGLV1("LV1LOG:iCnt[%d]\n", iCnt);   }   else   {    DEBUGLV2("LV2LOG:iCnt[%d]\n", iCnt);   }  }  return 0; } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 集合の一意性

    整数を元とする二つの集合A、Bについて、  B、C、Dがgiven A∩B=C  A∪B=D のときAが一意に決まる、のはベン図を描いてみれば一目瞭然、の気がしますが、正しいでしょうか。 証明は、どのようにつければよいでしょうか。

  • 打ち込んだ数字が素数かどうか判断するプログラム

    数字をキーボードから入力し、その数字が素数がどうかを判断するプログラムを打ちたいのですが、うまくできません。 コンパイルはできるのですが…。 どなたか間違っているところを教えてください。 #include<stdio.h> int main ( void ) { int a,b,indicator=1; printf("正の整数:"); scanf("%d", &a ); /* indicator=1.......素数でない indicator=0.......素数である */ if(a<=1){ indicator=1; } else { for(b=2;b<=(a-1);b++) { if(a%b == 0){ indicator=0; } } if(indicator==1) { printf("%dは素数ではありません\n",a); } else if (indicator==0) { printf("%dは素数です\n",a); } } return 0; }

  • ヒントをください!

    ある課題があるんですが、 「ユーザに好きな整数を10個入力させ、その最小値と最大値を出力するプログラムを書いてください。if文を使ってください。」 このプログラムを作る際のヒントをください。ぜんぜんわからないので。。。 答えは作ってから見たいので。。。 よろしくおねがいします。 10個数字を入力させるプログラムは作りました。 #include <stdio.h> int main(void){ int c,e,r,u,t,v,d,a,p,n; printf("好きな整数を10個入力してください。\n"); printf("整数を入力:"); scanf("%d",&c); printf("整数を入力:"); scanf("%d",&e); printf("整数を入力:"); scanf("%d",&r); printf("整数を入力:"); scanf("%d",&u); printf("整数を入力:"); scanf("%d",&t); printf("整数を入力:"); scanf("%d",&v); printf("整数を入力:"); scanf("%d",&d); printf("整数を入力:"); scanf("%d",&a); printf("整数を入力:"); scanf("%d",&p); printf("整数を入力:"); scanf("%d",&n); return 0; } このようになりました。

  • 文字と数字の判定について

    c言語を学び始めたばかりの者です。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <ctype.h> main(){ printf("数当てゲームを開始します。\n"); int a,count,n,b; srand((unsigned)time(NULL)); printf("1~10の中から1つ数字を選びます。\n"); a = (rand()%10)+1; printf("選びました\n"); for(count=0;;count++){ printf("その数字はズバリ:"); scanf("%d",&n); //もし数字でなければという文にしたい!! if (?){ printf("数字を入力してください。\n"); continue; } else{ if(n<a){ printf("もっと大きな値です。\n"); printf("%d回間違えました。\n",count+1); continue; } if(n==a){ printf("正解です!!\n"); b=0; exit(0); } if(n>a){ printf("もっと小さな値です。\n"); printf("%d回間違えました。\n",count+1); continue; } } } } というプログラムなのですが数字の判定の仕方が分からなくて最初のifの条件に何をいれればいいのか分からないので分かるかたいましたら教えてもらえないでしょうか?

  • C言語で計算が合いません(初心者)

    C言語で計算が合いません(初心者) 簡単な計算のプログミングをしているのですが 計算が合わなくて困っています。 整数型変数aと実数型変数bを定義 整数型変数cとdを定義して、c=0.5*a*b、d=a/2*b 実数型変数eとfを定義して、e=0.5*a*b、f=a/2*b という内容のプログラムを作ったのですが a=7,b=2.4を代入してみた結果 ---------------------------- Input a>>7 Input b>>2.4 8 7 8.400000 7.200000 ---------------------------- となりました どこが間違っているのでしょう? 答えは8.4でcが8なのは有効数字のためだと思いますが dとeで答えが全く違う理由が分かりません。 下に私が書いたものを貼っています。 ---------------------------- #include<stdio.h> int main(void){ int a,c,d; double b,e,f,ans; printf("Input a>>"); scanf("%d",&a); printf("Input b>>"); scanf("%lf",&b); c=0.5*a*b; printf("%d\n",c); d=a/2*b; printf("%d\n",d); e=0.5*a*b; printf("%lf\n",e); f=a/2*b; printf("%lf\n",f); return 0; } ---------------------------- よろしくお願いします。

  • プログラムが上手く動作しません。

    質問です。 1.整数を1個入力し、その数を3で割った余りが0ならば"Good morning"、1ならば"Good evening"、2ならば"Good afternoon"と出力するプログラムを作成せよ。ただしswhitc文を用いること。 という問題で私は #include <stdio.h> main() {      int a;      printf("整数a:");      scanf("%d",&a);      switch(a%3)      {      case '0':           printf("Good morning \n");           break;      case '1':           printf("Good evening \n");           break;      case '2':           printf("Good afternoon \n");           break;      } } と考えましたが実行しても入力はできますがprintfが表示されません。 どこが間違っているのでしょうか?ちゃんとコンパイルはできるのですが・・・。 2.10個の整数値をキー入力し、合計と平均値を計算してその結果を表示するプログラムを書きなさい。 #include <stdio.h> main() {      int a[11],b,c,i;      for(i=1;i<11;i++)      {           printf("整数%d:\n",i);           scanf("%d",&a[i]);      }      for(i=1;i<11;i++)           b+=a[i];      c=b/10;      printf("合計値は%d",b);      printf("平均値は%d",c); } というプログラムを考えましたが、計算結果がめちゃくちゃになってしまいます。 これもどこを直したらいいべきでしょうか?

  • C/C++ の __LINE__ マクロを文字列化する方法

    C/C++ プリプロセッサの定義済みマクロ __LINE__ の数値を 文字列化する方法がわかる方、いますか ? # 演算子(マクロ?)を使ってもだめでした。 そもそも不可能なのでしょうか ? printf("%d\n", __LINE__); // 行番号(数値) : OK #define tostr(n) # n printf("%s\n", tostr(__LINE__); // 文字列化して表示 : NG # 「意味がない」という回答はカンベンしてください.。

  • コンパイル結果が違う

    コンパイル結果が違う C言語を勉強中の初心者です。 以下のプログラムをVC++6.0のCL.exeでコンパイルするとうまくいくのですが、VC++2010のCL.exeでコンパイルして実行すると、t2の値が0になってしまいます。 また、VC++2010でコンパイルした方が実行結果も遅いです。 #include <stdio.h> #include <time.h> int main(void) { int i = 1; time_t t1, t2; time(&t1); while(i <= 30000) printf("%d,", i++); time(&t2); printf("\ntime1=%ld time2=%ld\n", t1, t2); printf("かかった時間は、%d秒です\n", t2-t1); return 0; } vc++2010でコンパイルした方のt2の値が、0で表示されてしまうのはなぜでしょうか? よろしく、お願いします。

  • エクセルのマクロで教えてください

    エクセルのマクロで教えてください A1に入っている値が変化するごとにD列に順にその変化を出力していきたいのですが マクロではどのようにしたらいいでしょうか A1には=C1+C2というような計算式が入っていてC2の数字を変えて計算結果が変わるごとに出力したいのですが