【C/C++】C语言的高级编程

2024-01-10 16:14:05

预定义宏

__FUNCTION__ 		//函数名
__LINE__			//行号
__FILE__			//文件名

printf(" the %s,%s,%d\n",__FUNCTION__,__FILE__,__LINE__);

宏展开下的#与##的使用

#define   ABC(x) 	#x			// 字符串化	
#define   DAY(x)	day##x 		// 宏序列化
#include <stdio.h>
#define ABC(x)	 #x
#define DAY(x)	 day##x
int main()
{
	printf(ABC(ab\n));		//相当于printf("ab\n")	输出ab\n
	
	int day1 = 10;
	int day2 = 20;
	printf("the day is %d\n",DAY(1));		//输出10
	return 0;	
}

常用的数据类型有

数据类型位宽
char8bit
short16bit
int32bit
long64bit
float23bit
double64bit

结构体定义

typedef struct
{
    uint16_t temperature;  //  设备温度
    uint16_t humidity;     //  环境湿度
    uint16_t corbon;       //  二氧化碳浓度
    uint16_t NH3_Value;    //   NH3
    uint16_t illumination; //  当前的光照值
    uint8_t sys_state;
} sensors_data_t;
sensors_data_t sensors_data = {0};           // 环境传感器值
struct student{
    char no[20];      //学号
    char name[20];    //姓名
    char sex[5];      //性别
    int age;          //年龄
};             
struct student stu1,stu2;

类型修饰符:对内存资源存放位置的限定,资源属性中位置的限定。

数据修饰符解释
auto默认就是auto,分配的内存再可读可写区域
register存储在CPU中的寄存器中,不能用取地址符“&”
const就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着“只读”(readonly
externextern声明外部符号,用来声明不在同一个源文件( .c文件)的变量,变量必须是全局变量
static修饰函数也会使得函数外部连接属性就变成内部连接属性。函数就只能在自己所在的.c文件看到,其他源文件就无法访问。
volatilevolatile就是使得被修饰的变量不去优化,一直放在内存中,提高对特殊地址位置的访问

文章来源:https://blog.csdn.net/EAyayaya/article/details/135499536
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。