免费注册 查看新帖 |

Chinaunix

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

特邀专家在线答疑——名不正则言不顺 一网打尽C语言基本概念 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2011-04-21 13:09 |只看该作者
澄清概念的书好几本,只是大家不愿意读罢了

论坛徽章:
0
62 [报告]
发表于 2011-04-21 13:30 |只看该作者
澄清概念的书好几本,只是大家不愿意读罢了
dj0227 发表于 2011-04-21 13:09



    比如?

论坛徽章:
0
63 [报告]
发表于 2011-04-21 16:25 |只看该作者
一直很少用enum,感觉这个用起来还真不知道它应该用在哪?

上次面试问到过一次这个,问我这个应该放在哪 ...
aaaaa5aa 发表于 2011-04-20 14:33



由于enum定义的常量默认情况下是连续整数,有时候维护代码时会容易一些。

比如我想用数组记录学生成绩:

原始代码
enum {CHINESE, MATH, TOTAL};

int arr[TOTAL];
arr[MATH] = 60;

现在我想增加一门科目,改成
enum {CHINESE, ENGLISH, MATH, TOTAL};

int arr[TOTAL];
arr[MATH] = 60;
arr[ENGLISH] = 70;


能用上的地方不少,但是能用enum的场合define都能做到。

论坛徽章:
0
64 [报告]
发表于 2011-04-21 22:20 |只看该作者
回复 1# KBTiller


    问下C为什么不支持重载????????

论坛徽章:
0
65 [报告]
发表于 2011-04-22 00:41 |只看该作者
C语言里。最搞不懂的就是指针了。难以搞清指向问题。

论坛徽章:
0
66 [报告]
发表于 2011-04-22 02:32 |只看该作者
回复  KBTiller


    问下C为什么不支持重载????????
zhanglistar 发表于 2011-04-21 22:20



    首先,函数重载是c++才出现的。

第二,和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于变量的可见范围,而链接器看到的那个是叫文件域,而全局域可能要跨越好几个文件域,这样只要两个同名函数用static修饰,并且在不同的文件中,就不会冲突……

不过这个实际上已经超越了编译器的范围,到达了链接器的管理区域了……表面看起来两个函数同名,但是实际上编译器为链接器产生的符号已经有了差别……

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-08-10 06:20:00
67 [报告]
发表于 2011-04-22 07:51 |只看该作者
本帖最后由 asdf93945 于 2011-04-22 07:56 编辑

计算机软件发展这么快,一个C99标准十几年没动静,跟死掉有什么区别??

VC10仍然在使用c89标准。gcc 需要指定-std=c99 才支持c99。
GCC 也没有完成支持 C99 :
http://gcc.gnu.org/c99status.html
http://gcc.gnu.org/gcc-4.5/c99status.html

论坛徽章:
0
68 [报告]
发表于 2011-04-22 08:03 |只看该作者
回复  KBTiller


    问下C为什么不支持重载????????
zhanglistar 发表于 2011-04-21 22:20



    您这个问题实际上是一个语言设计的问题,而不是语言特性的问题。对于我来说,这个问题有些难度。
    或许,我们可以听听两位版主的高见?

    又,starwing83 (小翼) 曾发起过一个讨论语言设计的帖子,应该对您的问题有一定参考意义http://bbs.chinaunix.net/thread-1799208-1-1.html

论坛徽章:
0
69 [报告]
发表于 2011-04-22 08:05 |只看该作者
C语言里。最搞不懂的就是指针了。难以搞清指向问题。
0810612124 发表于 2011-04-22 00:41



    我觉得最重要的是类型要搞清楚。自荐一下本人的博客,里面有对指针的完整阐述

论坛徽章:
0
70 [报告]
发表于 2011-04-22 08:07 |只看该作者
计算机软件发展这么快,一个C99标准十几年没动静,跟死掉有什么区别??

VC10仍然在使用c89标准。gcc 需要 ...
asdf93945 发表于 2011-04-22 07:51



    其实C99的特性都早就分别实现了,只是到目前完全实现的不多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP