Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Stringify Operators | Macros
/
C Preprocessing
セクション 2.  5
single

single

bookStringify Operators

メニューを表示するにはスワイプしてください

Stringify operator #

The # operator is used to convert a macro argument into a string literal. This means that if you pass any value to the macro, it will be converted to a string.

Here is an example of usage:

main.c

main.c

copy
123456789
#include <stdio.h> #define SQR(x) printf("Square " #x " = %d\n", ((x)*(x))) int main() { int j = 5; SQR(j); return 0; }

The #x operator in the SQR macro is used to turn the x argument into a string. When you pass the j variable to the macro, #x produces the string "j" (i.e. the variable name), not its value.

Thus, in the line

printf("Square " #x " = %d\n", )(x)*(x)));

#x causes the variable name to be included in the output, and x passes its value (in this case, 5).

If you use a number as an argument, #x will turn the number into a string and then treat it as a number:

main.c

main.c

copy
12345678910
#include <stdio.h> #define SQR(x) printf("Square " #x " = %d\n", ((x)*(x))) int main() { int j = 5; SQR(j); SQR (54); // number as argument return 0; }

Token Pasting operator ##

The ## operation combines two tokens into one.

main.c

main.c

copy
12345678
#include <stdio.h> #define CONCAT(x, y) x##y int main() { int myVariable = 10; // variable named `myVariable` printf("%d\n", CONCAT(my, Variable)); // Result: 10 return 0; }

The CONCAT(x, y) macro concatenates the tokens my and Variable, which results in the name myVariable - just like a variable name.

When you call CONCAT(x, y), the preprocessor replaces it with myVariable, and you can access the value of myVariable.

タスク

スワイプしてコーディングを開始

  1. Complete the CREATE_VAR macro, which will concatenate the tokens token1 and token2;
  2. Use the created macro to create the variable "myVariable";
  3. Specify the name of the variable whose contents you want to display on the screen.

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  5
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt