typedeflonglongLL; 编写跨平台程序的时候就可以利用typedef分条件编写,这样在跨平台运行的时候只需要修改一下typedef的宏定义即可: #ifndef _SIZE_T_DEFINED#ifdef _WIN64typedefunsigned__int64size_t;#elsetypedef_W64unsignedintsize_t;#endif#define _SIZE_T_DEFINED#endif 3.为自定义数据类型定义别名 c语言中...
typedefintx_int; x_int a=1; }namespaceother {#defineOTHER//不在乎是否在命名空间中//关键在一个编译单元}intmain() { #ifdef LL std::cout<<"LL define"<<std::endl;#endif#ifdef SS std::cout<<"SS define"<<std::endl;#endif#ifdef OTHER std::cout<<"OTHER define"<<std::endl;#endif...
#C++初学记录(typedef和define) typedef的用法 typedef关键字可以用于给数据类型定义一个别名,即可以给long long 定义成ll,也可以给结构体定义,当你定义了一个结构体时,每次创建一个结构体都要使用struct+结构体名的方式,而用了typedef之后,只要s使用定义好的结构体别名就可以创建了。例如 typedfstructstudent{charna...
如果放在某个函数内,定义域就是从定义开始直到该函数结尾; #define: 不管是在某个函数内,还是在所有函数之外,作用域都是从定义开始直到整个文件结尾。 define在同一编译单元内部,就算在不同的命名空间内,其作用范围不变。也就是从定义处一直到文件介绍。 看下面这个例子: Main.cpp /** * @file Main.cpp * @...
类型的别名呀,和#define差不多
如果有数组指针、函数指针的时候,using可能看起来和typedef差不多,比如:usingx=void(*[10])(void(*...
#define PERIPH_BASE ((uint32_t)0x40000000) typedef unsigned int uint32_t; 可以看到,RCC_BASE实际上是一个字节长度为4的无符号整形变量,经过各种宏定义,相加,最终RCC_BASE的值为0x40000000+0x20000+0x1000=0x40021000; 下面详细分析 #define RCC ((RCC_TypeDef *) RCC_BASE) ...
在C++中,using和typedef都可以用于重命名类型,但它们有一些区别。
#define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, STU n) { FILE *fp; /***found***/ fp = fopen(___, "rb+"); /***found***/ fseek(___, -(long)sizeof(STU), SEEK_END)...
// 比#define有优势就是常量值就自动生成的,如:FEB = 2, MAR = 3 ...enummonths{JAN =1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV ,DEC }; 3.联合体union 例子1 #include<stdio.h>//共享同一内存,大小取决于最大成员union{inta;charc; ...