初学者问题

chougoushi 2003-03-29 05:22:52
在WINDEF.H中有如下定义

typedef const RECT FAR* LPCRECT;


怎么理解,const在这里什么意思,他的组合是
1 typedef (const RECT) FAR* LPCRECT;
2 typedef (const RECT FAR)* LPCRECT;
还是别的什么

另外 int *p ;
*p=1;
中的两个*的区别是什么
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
林水福 2003-03-31
  • 打赏
  • 举报
回复
int *p;
是定义个int *的类型,*应该看作是int类型的修饰符,而不是p的修饰符号。
你可以写成。
typedef int * PINT;
PINT p;
chougoushi 2003-03-31
  • 打赏
  • 举报
回复
to applehuang2000(平):

是不是可以这样理解 #define 定义的变量是预编译的 ,const 定义的是在程序编译时才编译的。
如果这样,那在头文件中的typedef 中的const也是在程序编译时才编译的吗?

applehuang2000 2003-03-29
  • 打赏
  • 举报
回复
1.const 跟define一样是定义常量用的,用const定义所不同的是定义的常量是在编译程序来处理的.
2. int *p; //定义一个整形指针变量.
*p=1; //指针的值赋值为1;
guoxiny 2003-03-29
  • 打赏
  • 举报
回复
typedef const RECT FAR* LPCRECT;
是指向常量的指针,应该这样理解:typedef (const RECT) FAR* LPCRECT

int *p ;//这个*是指p是一个指向int类型的指针
*p=1;//这个*是指取指针p的内存(值)

指针p ----> ______
| *p |
------
zengpan_panpan 2003-03-29
  • 打赏
  • 举报
回复
第一个最好理解成:
typedef (const RECT FAR*) LPCRECT;

最后一个符号作为typedef定义的目标。

int *p;
是定义个int *的类型,*应该看作是int类型的修饰符,而不是p的修饰符号。
你可以写成。
typedef int * PINT;
PINT p;

*p中的*是修饰p的,表示取p这个地址上的内容。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧