免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: amwfnhz
打印 上一主题 下一主题

教大家几个小问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-03-31 23:08 |只看该作者
原帖由 langue 于 2009-3-31 23:00 发表


内存和硬盘,哪个好?
#define 是给你做宏替换用的,typedef 的用途是借助现有类型来自定义类型。


我记得某书上说typedef好,面试的时候你这么答恐怕...呵呵

论坛徽章:
0
12 [报告]
发表于 2009-03-31 23:26 |只看该作者
原帖由 虎皮尖椒 于 2009-3-31 23:08 发表


我记得某书上说typedef好,面试的时候你这么答恐怕...呵呵

define的不会在符号表中留有痕迹
typedef的则有

论坛徽章:
0
13 [报告]
发表于 2009-04-01 00:14 |只看该作者
原帖由 cugb_cat 于 2009-3-31 23:26 发表

define的不会在符号表中留有痕迹
typedef的则有

类型校验的差别,呵呵。

论坛徽章:
0
14 [报告]
发表于 2009-04-01 00:32 |只看该作者
原帖由 amwfnhz 于 2009-3-31 20:00 发表
闲来无事,发几个问题来大家做做,高手就别见笑了哈,本人也是菜鸟一个,想和大家共同学习,共同进步
1:下列程序结果是什么:
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
  puts("Got a null point ...


楼主开始吧,仔细说说吧!不过这些问题似乎实际的时候没有人会这么写代码,呵呵!不知道这些东西是不是只是停留在面试的层次!
真不知道有没有人写if ((ptr = (char *)malloc(0)) == NULL)这样的代码!哈哈!

新手。大家多指教!!!

论坛徽章:
0
15 [报告]
发表于 2009-04-01 11:13 |只看该作者
langue 很强大

事实上我觉得typedef和define都不好

论坛徽章:
0
16 [报告]
发表于 2009-04-17 11:17 |只看该作者

回复 #6 cugb_cat 的帖子

这不讨论free,论此题结果。

论坛徽章:
0
17 [报告]
发表于 2009-04-17 11:18 |只看该作者

回复 #15 雨过白鹭洲 的帖子

面试经常要这样问。我就遇到

论坛徽章:
0
18 [报告]
发表于 2009-04-17 11:19 |只看该作者

回复 #11 虎皮尖椒 的帖子

你说他好,得举出例子来的,不能是说好就好。

论坛徽章:
0
19 [报告]
发表于 2009-04-17 13:31 |只看该作者
又把这当作是找面试题答案的地方了~~~~

论坛徽章:
0
20 [报告]
发表于 2009-04-17 14:02 |只看该作者
1:   Get a valid pointer
2:   >=5
3:  不懂compzero是什么意思,另外你的前提是int是16位的才是0xFFFF,如果是32位的int,你这个compzero就是65535
4:typedef 为一种类型引入新的名字,而不是为变量分配空间。 typedef同样具有与其他声明一样的混乱语法,同样可以把几个声明塞到一个声明中去。对于结构,除了可以在书写时省掉struct之外,typedef并不能提供显著的好处,而少写一个struct其实并没有多大帮助。在某些方面,typedef类似于宏文本替换,但它们之间存在一个关键性的区别,主要体现在两个方面:
首先,可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这样作,比如:
#define int32 int
unsigned int32 i; /*没问题*/

typedef int int32_t
unsigned int32_t j; /*错误!*/

其次,在连续的几个变量声明中,用typedef定义的类型能够保证声明中所有的变量均为同一种类型, 而#define定义的类型则无法保证。
例如
#define int_ptr int *
int_ptr pa, pb; /* pa位指针型,pb为int */

typedef int* int_ptr_t
int_ptr_t pi, pj; /*pi, pj类型相同,都为指针*/


typedef应该用在:
    数组、结构、指针以及函数的组合类型。
    可移植类型。
    typedef也可以为后面的强制类型转换提供一个简单的名字

应该始终在结构的定义中使用结构标签,即使它并非必须,这种做法可以使代码更为清晰
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP