typedef和define的区别
2024-04-04 11:18:01
手机扫码访问
typedef和#define的区别?
区别如下:
1、typedef要写成语句的形式,即末尾要加分号(;),而#define是宏定义,末尾没有分号
2、typedef是为已经存在的数据类型起个别名,用这个别名来表示这个数据类型,如:
typedef unsigned int uInt32;
uInt32 a,b,c; //定位了3个无符号整型变量
#define是定义一个宏名来表示跟在其后面的一个字符串或者表达式,它只是作简单的字符替换,在预处理阶段
编译器会将所有的宏名用其后面的字符串或者表达式作替换,而不做任何的运算。如:
#define N 10 //用N来表示常数10
#define MAX(a,b) (a>b?a:b) //用带参数的宏名MAX来表示表达式(a>b?a:b)。
调用的时候:
int a=3,b=4;
MAX(A,B); //等价于(a>b?a:b); 因为它只是将实参传进去,然后做简单的字符替换。
以上内容延伸阅读:
C语言的标点符和特殊字符的含义?
auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
case:开关语句分支
enum :声明枚举类型
register:声明积存器变量
typedef:用以给数据类型取别名(当然还有其他作用)
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明(也可以看做是引用变量)
return :子程序返回语句(可以带参数,也看不带参数)
union:声明联合数据类型
c命令的别名是什么?
#define 是 C 的预处理器指令,也称之为 C 命令,用于为各种数据类型定义别名,,与关键字 typedef 类似,但是它们有以下几点不同:
typedef 仅限于自定义数据类型标识符的别名,#define 不仅可以为数据类型定义别名,也能为实际的数值定义别名。
typedef 是由编译器处理的,#define 语句是由预处理器进行处理的。
#include <stdio.h>
/* 自定义常量 */
#define TRUE 1
#define FALSE 0
int main() {
printf( "TRUE 的值: %dn", TRUE);
printf( "FALSE 的值: %dn", FALSE);
return 0;
}
本文于2024-04-04 11:18:01发表在866l生活。本文链接:https://www.866l.com/t/16941587186876.html