Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Stringify Operators | Macros
C Preprocessing
course content

Conteúdo do Curso

C Preprocessing

C Preprocessing

1. Introduction to Preprocessing
2. Macros
3. Conditional compilation

book
Stringify 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:

c

main

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

python

#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:

c

main

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.

c

main

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.

Tarefa

Swipe to start coding

  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.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
toggle bottom row

book
Stringify 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:

c

main

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

python

#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:

c

main

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.

c

main

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.

Tarefa

Swipe to start coding

  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.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Sentimos muito que algo saiu errado. O que aconteceu?
some-alt