C语言typedef和#define

2019-07-14 21:11发布

#define A int
typedef int B
A a,b;
B c,d;
以上有错误吗,或者是否存在问题?若有错指出。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
黄成成
1楼-- · 2019-07-15 18:38
 精彩回答 2  元偷偷看……
不负長詞不负卿
2楼-- · 2019-07-15 20:31
两个应该都没什么问题
第一个是对的,我现在写单片机就经常用到
#define uchar unsigned char
第二个应该也没问题,根据我对下面百度内容的理解。
——
typedef是C/C++的一个关键字,其功能是定义一个新的自定义类型。形式为

typedef OLD_TYPE NEW_TYPE
也就是给OLD_TYPE起一个别名,起到简化代码的作用。

在这里,typedef int *p; 其实是
typedef int* p;
即int*是一体的,而p是新类型的名字。
在如此定义后,p就等同于int *的效果
偏移量
3楼-- · 2019-07-15 21:37
使用上确实只是少个分号;规范上讲就如同12楼所说的别名与类型的问题了
HARRY007
4楼-- · 2019-07-16 00:17
typedef是C语言中的一个关键字,作用是对已存在的数据类型重命名,但是并没有产生新的数据类型。#define宏定义的话就是最简单最直观的替换,在预编译阶段就完成了的。这里引用别人的一个例子说一下区别。
     #define PCHAR char *
      PHCAR p3,p4;
      typedef char * pchar
      pchar p1,p2;
在这里p4不是指针,仅仅是一个char类型的字符。     引自《C语言深度剖析》第二版P48
月下星河
5楼-- · 2019-07-16 01:07
typedef 用来对寄存器进行定义,面向的对象是寄存器,define是宏定义,用一个标识符代替一个常量或表达式
jianfeii
6楼-- · 2019-07-16 01:13
 精彩回答 2  元偷偷看……

一周热门 更多>