- 论坛徽章:
- 0
|
我指的是“纯 C 语言”其他一律非 C 语言知识的不算,包括和数据结构、算法、系统、网络有关的所有所有
C 语言就是简简单单的语法组成的,仅此而已
如果你认为这样就是你所谓的C语言,我觉得你对C的认识很肤浅,以你这样的C功底再去看linux kernel我觉得进步也不会很快...
你不是说语法简单么?我就考你语法:
- 1.下面几个语句是什么意思:
- typedef int (*f)(void)[5];
- char *(*c[10])(int **);
- 2.这个宏的含义是什么:
- #define OFFSET(structure, member) ((int) &((structure *)0)->member)
- 原理又是什么?
- 3.从堆栈的角度给我解释一下为什么返回局部指针变量是危险的?
- 4.int t = (unsigned char)(-1);
- 此时t为多少?又是为什么呢?
- 5.C中到处存在的指针强制转换,它的原理又是什么呢?为什么我这样做没有问题:
- int t = 1;
- void *p = (void*)&t;
- int *p1 = (int *)p;
- 这里,t的指针经过几次转换,到p1的时候还是能够正确的读出数值,为什么?
复制代码
以上问题,都是你所谓的"C语法",你是否能对答如流?还或者你匆忙的翻开一本书,或者打开google敲入关键字却手忙脚乱...?你是觉得十分的简单,答来全不非功夫,还是脸上冒出冷汗???你是...还是....
这个就是你所谓的"仅此而已"的C,简单但是博大精深,要做到"精通",你要对底层,对系统等等有足够的了解,就是flw所说:要成为半个机器人...如果你对C的理解就仅仅是语法层面的,坦白说:你的C功底"仅此而已".
没别的意思,我觉得,如果你对某个东西的了解不深的话就不要轻易下什么30%的结论,不要说什么"仅此而已"的话....不了解不清楚的时候还是闭上你的嘴好好的看书罢. |
|