C语言 编程 计算机 IT 语言 技术 电脑 指针 类型 字符

发布网友 发布时间:2022-04-22 07:08

我来回答

2个回答

热心网友 时间:2022-06-17 06:11

#define buffer ((char *)*(int far *)0x200)——定义buffer为后面的字符串((char *)*(int far *)0x200),在以后的代码中写buffer就与写(char *)*(int far *)0x200的意思完全一样了。(char *)*(int far *)0x200的意思是把0x200强制为int far *型(整型远指针)指针,再取出其中的内容,并把取出的内容强制为一个char *型字符指针。(char *)*(int far *)0x200最外面的()是为宏调用的安全生而加的。
buffer=(char *)malloc(20);——申请20个连续的内存单元并把第一个单元的地址强制为char *型指针赋给buffer。由于有前一句宏定义,所以编译器把这一段解释为((char *)*(int far *)0x200)=(char *)malloc(20);,实际上就是把申请的20个连续的内存单元的第一个单元的地址赋给了从地址0x200中取出的、被强制为char *型的指针。

热心网友 时间:2022-06-17 06:12

选取0x200的地址,并且申请20个char的空间

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com