0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用#include操作的一段风骚代码

FPGA之家 来源:TopSemic嵌入式 作者:TopSemic嵌入式 2021-05-03 11:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有个小伙伴在我们的嵌入式交流群里发了类似下面的一张图,

5e48f54c-9ff3-11eb-8b86-12bb97331649.png

顿时引起一阵骚动,我把源代码再附上,

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 如下:

“北京”,

“上海”,

“广州”

这段代码风骚的地方是在C语言里的数组里使用了一个#include的操作,我长这么大也是第一次见。

不过有个小伙伴表示不服,他立刻在自己的电脑上编译了一把,尴尬的是没有编译通过

5e93bc26-9ff3-11eb-8b86-12bb97331649.png

他也把自己的代码贴上来了

问题出在什么地方呢?看到这里,你可以暂停10秒钟,想一下原因。

后来该同学自己找到了问题,

问题在于#include “city.h”必须单独起一行。

那么问题又来了,为什么#include 必须要单独起一行?为此我把落了一层灰的《C和指针》书拿出来翻了一遍,楞是没找到说明。

最后在谷歌上找到一个人的回答:

#必须是一行中的首个非空格字符,也就是说#前面可以有空格,但是不能有其他字符。

这个问题先这么告一段落吧。

后来群里的会长同学又提出了疑问,

他觉得这个city.h写的不符合C规则,刚一看好像是这么回事,一般的头文件也没有这么写的,不过事实上没人规定头文件应该怎么写,只要包含后的c文件符合语法规则就可以。另外#include 包含的文件也不一定是后缀为.h的文件,什么后缀格式的文件都可以。

用上述方法也有好处,方便更新数组内容,直观。

此外如果用gcc编译的话,gcc 使用-E 参数可以帮你展开宏定义和头文件。

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

我找了一下2013年自己找工作的简历。

他说的没错,我第一条写的就是精通C语言编程

全文完。

原文标题:一个风骚的C语言操作

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20645

    浏览量

    336926
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146134

原文标题:一个风骚的C语言操作

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SonarQube代码质量管理平台详解

    代码质量问题是技术债务的主要来源。个未被发现的空指针异常可能在生产环境导致服务崩溃,一段存在SQL注入漏洞的代码可能让整个数据库暴露在攻击者面前。传统的Code Review依赖人工
    的头像 发表于 03-11 09:40 410次阅读

    为什么一段式端到端自动驾驶很难落地?

    ,将感知、预测、规控等任务拆分为相互独立的子系统。然而,随着深度学习技术的突破,端到端的新兴技术架构开始占据讨论的中心。 在这架构中,一段式端到端主张将传感器输入直接映射为驾驶动作输出,力求通过单的神经网络
    的头像 发表于 03-08 09:44 1795次阅读
    为什么<b class='flag-5'>一段</b>式端到端自动驾驶很难落地?

    Include File解锁Vector Logger Suite高阶功能

    Include File(inc文件)是Vector Logger Suite(VLS)中使用LTL代码片段的关键机制。通过Include File,用户可以在LTL代码中灵活定义参数
    的头像 发表于 12-30 09:44 559次阅读
    <b class='flag-5'>Include</b> File解锁Vector Logger Suite高阶功能

    汇编程序的定义介绍

    已经由操作系统自动设置为代码基址,数据基址则需要程序员手动装入DS中; ASSUME
    发表于 11-21 08:19

    AQ6370D使用一段时间会无法通讯问题(TCP通讯)

    使用LAN通讯方式与AQ6370D光谱仪通讯,通讯无问题,但是过一段时间通讯失败
    发表于 11-19 14:47

    一段ESP32S2代码

    代码
    的头像 发表于 11-11 07:25 470次阅读

    编译器如何指定代码的地址

    我在官方 gcc 的基础上添加了自定义指令,目前可以正确编译出汇编代码,但是我该如何指定汇编结果的地址,让生成的代码符合蜂鸟的地址分配呢?求助大神帮助指导下,thx~
    发表于 11-10 06:06

    自动驾驶中“一段式端到端”和“二式端到端”有什么区别?

    摄像头、毫米波雷达、激光雷达等信号,便可以直接输出转向、油门、刹车或者轨迹指令。一段式端到端就是用个整体模型完成这个任务,从传感器到控制,中间不拆成多个模块,训练的目标是直接模仿人类司机的操作,或者直接优
    的头像 发表于 10-24 09:03 1400次阅读
    自动驾驶中“<b class='flag-5'>一段</b>式端到端”和“二<b class='flag-5'>段</b>式端到端”有什么区别?

    自动驾驶中常提的一段式(单)端到端是个啥?

    自动驾驶技术的发展,催生出端到端技术的应用,一段式端到端(end-to-end single-stage)作为端到端技术的种实现方式,指的是用个学习模型把传感器输入(比如摄像头图像、激光雷达点云、惯导数据等)直接映射到车辆控
    的头像 发表于 10-18 10:16 1853次阅读

    单片机运行一段时间死机,为什么?

    问题: 单片机运行一段时间死机,想通过在死机前异常时利用cmbacktrace捕捉log保存,让系统重启重启后通过shell打印出死机时信息,用addr2line分析死机原因
    发表于 09-29 08:26

    使用USB传输数据一段时间后能正常运行但是不会再上发数据,为什么?

    尝试过两种程序都会出现这种问题:使用USB传输数据一段时间后能正常运行但是不会再上发数据,都是基于正点原子水星开发板,主控为STM32H743iit6进行测试 使用的是PB14/PB15的HS,上发
    发表于 09-18 07:59

    博世一段式端到端方案打造智能辅助驾驶体验

    在智能辅助驾驶加速落地的今天,面向复杂多变城市环境的广覆盖、高适应性智能辅助驾驶方案,目前仍是技术发展的关键突破方向。博世致力于打造既高效又可靠的智能辅助驾驶体验,与文远知行联合打造“一段式端到端”方案,灵活、拟人应对各城市路况,即将在2025年8月底量产,实现全国都可开。
    的头像 发表于 08-07 16:55 2458次阅读

    AD7606BSTZ正常工作一段时间后,ad停止转换是什么原因导致的?

    您好,我的控制板上采用AD7606BSTZ来采集逆变器的三相电流。在变流器没有跑功率的时候,AD芯片可以直工作;跑功率时运行20min左右之后,AD转换的数值开始发生错误,会出现较长时间结果为0;再过一段时间芯片就完全不工作了,AD输出持续为0。 请问这是触发了芯片的什
    发表于 07-29 08:58

    使用USB传输数据一段时间后能正常运行但是不会再上发数据,为什么?怎么解决?

    尝试过两种程序都会出现这种问题:使用USB传输数据一段时间后能正常运行但是不会再上发数据,都是基于正点原子水星开发板,主控为STM32H743iit6进行测试 使用的是PB14/PB15的HS,上发
    发表于 06-10 08:22

    FX3的FLAGA信号,在运行一段时间后,无法拉高怎么解决?

    Thread0所在的缓存,上传上位机。同时,FPGA检测Thread2中是否有数据需要读取,若有,则将Thread2中的数据读取到FPGA中进行解析。 如下图,在正常运行一段时间后,FLAGA信号会拉低,并且无法恢复为高电平,导致FPGA无法继续写数据至Thread0。 请问我该如何解决这个问题?
    发表于 05-08 07:38