C语言中特殊用法 一、_near_func 用法解释 那就是说__near_func和汇编的JUMP作用差不多而_far_func 和汇编的LONG JUMP 差不多了 二、st(P##port##SEL &= ~BV(pin); \ 1 P##port##_##pin## = val; \ 2 P##port##DIR |= BV(pin); ) 3 解释 port和pin是IO口的...
除了大家说的PHP,其实,C语言也是世界上最好的语言。C语言已经连续几个月占比 TIOBE 榜首,成为最受欢迎的编程语言了。 C语言之所以那么受欢迎,除了历史悠久之外,还有他它具有一些编程语言没有的功能。那么,今年我们就来了解一下C语言的一些特殊功能。 一、ANSI C特殊标准定义罗列一些常见的特殊定义: __FILE__:正...
C语言有很多特殊的用法,如果这些特殊用法使用得当,会是你的代码变得更加有健壮,更加容易维护。 比如我们在使用STM32库的断言(assert),你会发现官方提供了包含“__FILE__、__LINE__”的代码。 标准外设库位于stm32fxxx_conf.h文件: #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_...
在C语言中,宏定义是一种强大的预处理功能,用于在编译之前对代码进行文本替换。然而,宏定义也存在一些常见的“坑”和特殊用法,需要开发者特别注意。以下是对这些“坑”和特殊用法的详细解释: 1. 宏定义的基本概念 宏定义是C语言预处理指令的一种,用于在编译之前对代码中的文本进行替换。宏定义的基本语法如下: c ...
C语言宏定义的特殊用法以及避坑指南 宏基础 宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下: 1.标示符别名 #defineBUFFER_SIZE 1024 预处理阶段 foo = (char*)malloc(BUFFER_SIZE); 会被替换成 foo = (char*)malloc(1024);...
十三C语言的#特殊用法 #: ①#define SQR(x) printf("x is %d",x); ②#define SQR(x) printf("#x is %d",x); 在程序中使用SQR(8)会得到不同结果: ①x is 8 ②8 is 8 井号#后接define的参数,#x,可以将x变为形参。 ##: #define XNA(n) X##n...
scanf的特殊用法 1. 赋值抑制字符* scanf里边也可以用通配符,比如下面代码中的scanf,"%*6d " 。星号可以理解为赋值抑制字符,他表示从缓冲区中取6个字符,但是不赋值(也就是说不用写参数来接收他)。 int main(){ int yy,mm,dd; scanf("%*6d%4d%2d%2d%*4d",&yy,&mm,&dd);...
C语言#define的特殊用法 #define Conn(x,y) x##y ##表示x连接y,举例说: int n = Conn(123,456); 结果就是n=123456; char* str = Conn("asdf", "adf")结果就是 str = "asdfadf"; #define ToChar(x) #@x #@表示给x加上单引号,结果返回是一个const char。举例说:...
可以,可以显示反斜杠n,把它放入单引号中就可以
这是篇基础知识文章,分享嵌入式C语言宏定义中特殊操作符的用法。 #运算符 #号作为一个预处理运算符,可以把记号转换成字符串。 例子: #include<stdio.h> #defineINT_TO_STR(n)#n #defineVERSION(major,minor)"V"INT_TO_STR(major)"."INT_TO_STR(mi...