define 和 typedef 差异
程序员文章站
2024-03-23 11:45:22
...
define 我们常用来对可变参数进行定义,使用的方式如下:
#include <stdio.h>
#define PI 3.14159
void main()
{
float s = 0;
float r = 2.5;
s = (PI * r * r ) /2
}
define 在代码中只做简单的替换工作,在代码进行预编译时将 所有使用 define 定义的变量全部替换。
typedef 可用于声明变量别名,数据类型别名等,并不分配实际空间
////////////////////结构体别名方式
typedef struct {
unsigned char name;
unsigned int num;
unsigned int id;
unsigned float score;
} student;
void main()
{
student stu1, *stu2;
stu1.num = 100;
stu2->num = 101;
}
//////////////////
struct student{
unsigned char name;
unsigned int num;
unsigned int id;
unsigned float score;
} ;
void main()
{
struct student stu1, *stu2; //必须添加struct
stu1.num = 100;
stu2->num = 101;
}
////////////////////数据类型别名
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
//这种定义方式是便于不同平台进行移植
///////////////////////////////
#define PCHAT char*
PCHAR pstr1, pstr2; //pstr1 为指针,pstr2不是
typedef PCHAR char *;
PCHAR pstr1, pstr2; //pstr1, pstr2 均未char 型指针