在上面的示例中,STRINGIFY是一个函数宏,它将传入的参数转换为字符串常量。在main函数中,我们定义了一个整数变量num,然后使用STRINGIFY宏将其转换为字符串。最后,我们使用printf函数打印出转换后的字符串。 运行上述代码,输出将是: 代码语言:txt 复制 The value of num is: 10 在这个例子中,STRINGIFY(num)...
简介:C语言字符串、宏定义及主函数介绍 一、字符串 1、字符串声明 #include <stdio.h>int main() {char str[] = "abc"; //用字符串字面值对字符数组进行初始化,这样就可以把字符串字面值里的所有内容都放到字符数组里(包括'\0'字符)printf("sizeof(str)是%d\n", sizeof(str));//%s占位符从一个...
1.打印LOG宏 #include <stdio.h> // 两个井号连接字符串,避免agrs为空 // 条件式编译 gcc -D DEBUGGER #ifdef DEBUG #define log(frm, args...){\ printf("[%s : %s :
memset(str, 'h'/*要设置的字符内容*/, 9/*要设置的存储区个数*/); //可以把字符数组里前n个字符存储区的内容设置成同一个字符 printf("%s\n", str); p_ch = strstr("abcdefghijklmn", "def"); //用来在一个字符串里找另外一个字符串的位置,用返回值表示找到的位置.如果没有找到则返回值是NULL...
c语言 宏的一些深层应用(##,#,宏函数) "##" 宏拼接 #defineCONCATENATE(a, b)a##b CONCATENATE(student_,1)// 将a和b拼接起来变成一个新的变量 -> student_1 #defineCONS(a,b)int(a##e##b) CONS(2,3)//将aeb拼接起来 -> 2e3 == 2000...
比如让我们的标示符有意义,让我们的代码修改更方便,可以替代在代码中常用的字符串缩短代码等。其实在宏定义中,我们也可以像一个“函数”一样实现一个的功能,这种用法叫函数宏,函数宏在我们对宏定义的使用中更加的常江,下面我们从五个方面来了解下函数宏的使用。1.函数宏的书写#defineMAX(a,b)((a)(b)?(a)...
首先我们的宏在编译阶段会直接和代码替换本次的宏就将printf函数内容进行了替换使SQUARE(3+2)替换成了3+2*3+2这样我们就得到了11的值。 所以使用宏的时候一定要加括号!加括号! #include<stdio.h> #define SQUARE(x) ((x) * (x)) ...
1.1 C语言宏的定义和概述 C语言宏是一种预处理指令,用于在程序编译之前进行文本替换。它可以把一个标识符替换为一个特定的字符串、表达式或代码块。使用宏可以减少代码的重复性、提高代码的可读性和可维护性,并且可以使代码更加灵活和可定制化。 1.2 宏定义和函数的比较 ...
为了解决这个问题,特意再次去查看了有关C语言宏定义的语法,终于找到了解决方法,具体的思路是,需要用一个“中间宏函数”做转换: #define CFG_LOGGER_NAME uart #define TO_STRING(x) #x #define _CFG_LOGGER_NAME_STR(x) TO_STRING(x) #define CFG_LOGGER_NAME_STR _CFG_LOGGER_NAME_STR(CFG_LOGGER_NAME...