免费注册 查看新帖 |

Chinaunix

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

如何才算是精通c语言 [复制链接]

论坛徽章:
0
71 [报告]
发表于 2006-02-28 10:20 |只看该作者
我指的是“纯 C 语言”其他一律非 C 语言知识的不算,包括和数据结构、算法、系统、网络有关的所有所有
C 语言就是简简单单的语法组成的,仅此而已


如果你认为这样就是你所谓的C语言,我觉得你对C的认识很肤浅,以你这样的C功底再去看linux kernel我觉得进步也不会很快...

你不是说语法简单么?我就考你语法:


  1. 1.下面几个语句是什么意思:
  2. typedef int (*f)(void)[5];
  3. char *(*c[10])(int **);

  4. 2.这个宏的含义是什么:
  5. #define OFFSET(structure, member)  ((int) &((structure *)0)->member)
  6. 原理又是什么?

  7. 3.从堆栈的角度给我解释一下为什么返回局部指针变量是危险的?

  8. 4.int t = (unsigned char)(-1);
  9. 此时t为多少?又是为什么呢?

  10. 5.C中到处存在的指针强制转换,它的原理又是什么呢?为什么我这样做没有问题:
  11. int t = 1;
  12. void *p = (void*)&t;
  13. int *p1 = (int *)p;
  14. 这里,t的指针经过几次转换,到p1的时候还是能够正确的读出数值,为什么?

复制代码


以上问题,都是你所谓的"C语法",你是否能对答如流?还或者你匆忙的翻开一本书,或者打开google敲入关键字却手忙脚乱...?你是觉得十分的简单,答来全不非功夫,还是脸上冒出冷汗???你是...还是....

这个就是你所谓的"仅此而已"的C,简单但是博大精深,要做到"精通",你要对底层,对系统等等有足够的了解,就是flw所说:要成为半个机器人...如果你对C的理解就仅仅是语法层面的,坦白说:你的C功底"仅此而已".

没别的意思,我觉得,如果你对某个东西的了解不深的话就不要轻易下什么30%的结论,不要说什么"仅此而已"的话....不了解不清楚的时候还是闭上你的嘴好好的看书罢.

论坛徽章:
0
72 [报告]
发表于 2006-02-28 10:22 |只看该作者
这个帖子可以考虑转到C版去了,不知道C版的斑竹有没有这个权限,我想那里会好些

论坛徽章:
0
73 [报告]
发表于 2006-02-28 10:27 |只看该作者
这不是一个跟技术十分相关的主题,我发起这个主题是想了解一下招聘者和应聘者对“精通”的心态。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
74 [报告]
发表于 2006-02-28 10:27 |只看该作者
看看大师们 是怎么利用C语言写出非常好的代码吧.~我比较同意converse的观点.

论坛徽章:
0
75 [报告]
发表于 2006-02-28 10:31 |只看该作者
通常意义上的精通,在HR看来,你能够干活就行;在你自己看来,能够过应聘关就行.
绝对意义上的精通,犹如大海捞针

论坛徽章:
0
76 [报告]
发表于 2006-02-28 10:35 |只看该作者
我觉得对招聘者来说,“精通”不是一个定性的词(没有规定“精通”一定要达到什么水平),而是表达一种定量的关系(就是比“熟悉”多懂一点)。具体是否符合应聘者的要求要看面试和笔试以后才能知道。是驴是马,牵出来溜溜,光说不练是不行的。应聘者(特别是应届毕业生)说自己“精通”只是为了吸引眼球,自抬身价。

论坛徽章:
0
77 [报告]
发表于 2006-02-28 10:37 |只看该作者
原帖由 mq110 于 2006-2-28 10:27 发表
看看大师们 是怎么利用C语言写出非常好的代码吧.~我比较同意converse的观点.


关于这个问题,可以另开一个主题。

论坛徽章:
0
78 [报告]
发表于 2006-02-28 11:11 |只看该作者
原帖由 flw 于 2006-2-28 09:48 发表
的确是这样的,之所以没有人敢说“精通 C 语言”,就是因为很少有人能够同时掌握书写 netfilter 模块、通过 db-library 操作 SYBASE、编写多媒体在线播放协议这些不同的技术……



FLW 头像好美啊。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
79 [报告]
发表于 2006-02-28 11:17 |只看该作者
converse 今天火气有点大,消消气,都消消气,
白金是老版主了,没你说的那么差,大家自己人,说什么都不在乎,可要是被外人看见了,就真的以为白金什么都不会了。

converse 你那几个例子有点问题,
赶紧编辑一下吧。
typedef int (*f)(void)[5];
是错的。

#define OFFSET(structure, member)  ((int) &((structure *)0)->member)
你不加 struct 只能在 c++ 里编译过去,

3.从堆栈的角度给我解释一下为什么返回局部指针变量是危险的?
这个正确的说法应该是“为什么返回指向局部变量的指针是危险的”,
返回局部指针变量是安全的。

4.int t = (unsigned char)(-1);
这个……太复杂了……我都不记得在 ANSI C 里面有没有标准的结果了……反正这么做肯定是不符合标准的。

论坛徽章:
0
80 [报告]
发表于 2006-02-28 11:19 |只看该作者
IT职业生涯氛围宽松, 所以大家把战场摆设在这里
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP