项目运用的背景如下: 项目中有个头文件中定义了一个宏定义,比如是 #define CFG_LOGGER_NAME uart 然后,在某个C文件中需要讲这个3转换成对应的字符串类型,即为"uart";很明显,如果按以下的几种方式定义,肯定得不到期望的结果: 方式1: #define CFG_LOGGER_NAME_STR "CFG_LOGGER_NAME" 方式2: #define CFG_L...
#define命令是C语言中的一个宏定义命令,它用来讲一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义(不带参数的宏定义),另一种是带参数的宏定义。 (1) 简单的宏定义 格式:#define <宏名/标识符> <字符串> eg:#define PI 3.1415926 说明...
简介:C语言字符串、宏定义及主函数介绍 一、字符串 1、字符串声明 #include <stdio.h>int main() {char str[] = "abc"; //用字符串字面值对字符数组进行初始化,这样就可以把字符串字面值里的所有内容都放到字符数组里(包括'\0'字符)printf("sizeof(str)是%d\n", sizeof(str));//%s占位符从一个...
首先,我们知道非常常见的一个宏的拼接和展示字符串的宏定义: #defineCONTACT(x,y) x##y//拼接#defineSTR(x) #x//转字符串 这种宏定义在开发中是很常见的! 但是,如果上边我们那个需求中,让一个字符串和一个宏的值进行拼接的话,纯粹使用上边的宏就不行了,这里我们要使用二级的宏,这样才能拼接到宏的值: ...
在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) / do{ if (EXP) / fprintf(stderr, "Warning: " #EXP "/n"); } / ...
C语言中宏的字符串化涉及两种形式: 1、任意字符的字符串化,用到的符号为# 2、字符串拼接,用到的符号为## 在内核中,字符串化的宏为 #define _str(x) #x ...
是一种在C语言中使用宏定义来生成字符串的技术。通过使用宏定义,可以将字符代码转换为对应的字符串表示。 在C语言中,字符代码是使用ASCII码来表示的,每个字符都有一个对应的整数值。C宏按字符代码生成...
比如让我们的标示符有意义,让我们的代码修改更方便,可以替代在代码中常用的字符串缩短代码等。其实在宏定义中,我们也可以像一个“函数”一样实现一个的功能,这种用法叫函数宏,函数宏在我们对宏定义的使用中更加的常江,下面我们从五个方面来了解下函数宏的使用。1.函数宏的书写#defineMAX(a,b)((a)(b)?(a)...
一、字符串 1、字符串声明 #include <stdio.h> int main() { char str[] = "abc"; //用字符串字面值对字符数组进行初始化,这样就可以把字符串字面值里的所有内容都放到字符数组里(包括'\0'字符) printf("sizeof(str)是%d\n", sizeof(str)); ...
1、#(stringizing)字符串化操作符。 其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如: #define example(instr) printf("the input string is:/t%s/n",#instr) ...