一个风骚的C语言操作

(原因出在#include city.h的写法上单独另外起一行写就没问题像上面那样和大括号写在一行就不行)

https://m.toutiao.com/is/ebJHpVd/

有人在群里发了下面一张图,

附上源代码:

main.c#include <stdio.h>#include <string.h>static char city_name[][20] = {#include 'city.h'};int main(void) {printf('%s', city_name[0]);}city.h'北京','上海','广州'

这个程序风骚在把#include用在了一个数组里,这让群里的老程序猿也按捺不住鸡冻的心情了

有个小伙伴,表示不服,自己一顿操作,实际编译了一把,结果报错了

这不尴尬了,为什么编译不通过呢?他的main.c是这样的

这么看好像也没什么问题哦,但事实上这样就是不行的,后来他自己试成功了,

另外一个小伙伴也试验成功了

原因出在#include “city.h”这句话的写法上,单独另外起一行写就没问题,像上面那样和大括号写在一行就不行。

我在我电脑上也测试了下,确实是同样的情况。

那么问题来了,为什么#include 那么写就编译报错呢?

这种方法方便更新数组内容,直观

到这里群里的陈同学又提出了疑问,

没人规定头文件应该怎么写,#include 也不一定是后缀为.h文件 什么文件都可以,只要包含之后符合C规则就可以。

gcc 使用-E 参数会帮你展开 宏定义和头文件

最后陈同学感慨了一句:毕业找工作,精通c语言,两年后掌握c语言,五年后,了解c语言。

我找了一下当年2013年找工作的简历:

陈同学说的没错,当年我第一条写的就是精通C语言编程。

TopSemic,号主是两位在嵌入式领域摸爬滚打多年的老兵,他们一个偏老,一个偏少,一个偏硬,一个偏软,进过外企,待过原厂,做过开发,干过支持。他们深知嵌入式工程师的不易:芯片选型难、遇到棘手问题无处求救、被BUG各种坑。他们也和你一样,被问题虐过千百遍,待技术依然如初恋。他们在公众号里无私分享个人多年的实战经验,包括MCU、Linux、EMC、行业知识等。他们希望能够结交更多的行业内朋友,大家一起同行,共同进步,期待大家的关注!

(0)

相关推荐