一个风骚的C语言操作

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

顿时引起一阵骚动,

我把源代码再附上,

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的操作,我长这么大也是第一次见。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

全文完。

欢迎关注我们,与大家一起成长!


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server表分区-水平分区

SQL Server表分区&#xff0c;sql server水平分区 转自&#xff1a;http://www.cnblogs.com/knowledgesea/p/3696912.html 根据时间的&#xff0c;直接上T-SQL代码的水平分区&#xff1a;https://www.xuebuyuan.com/1817312.html?tdsourcetags_pcqq_aiomsg什么是表分区 一般情…

基于STC89C52的韦根数据接收

韦根是一种开放的通讯协议&#xff0c;具体官方介绍如下&#xff1a;Wiegand协议是国际上统一的标准&#xff0c;有很多格式&#xff0c;标准的26-bit 应该是最常用的格式。此外&#xff0c;还有34-bit 、37-bit 等格式。格式的含义如下&#xff1a;当给出这一串数字&#xff0…

超乎想象,数据揭示自学成才的码农为何备受青睐

你是否想成为一个 Web 开发者&#xff0c;但却不知道从哪里开始&#xff1f; 你是否对学习编程语言的大量建议和繁琐细节感到审美疲劳&#xff1f; 你是否不确定需要遵循哪条路才能成为一个自信而又足智多谋的开发者&#xff1f; 如果你的回答是肯定的&#xff0c;那么不要担心…

Linux下的图形库curses写贪吃蛇,酷

最近看到大神在Linux下写的贪吃蛇代码&#xff0c;用到了curses图形库&#xff0c;可能很多人都没有用过&#xff0c;分享出来给大家。在ubuntu下安装curses图形库命令sudo apt-get install libncurses5-dev双buff是一个非常优秀的机制&#xff0c;之前写贪吃蛇的时候&#xff…

初中变成了菜园子了!

我家在四川省射洪县天仙镇凤鸣场&#xff0c;属于四川盆地山区&#xff0c;在四川中部&#xff0c;发源于川北羌塘群山的涪&#xff08;fu&#xff09;江流经射洪县城。天仙镇原名天仙寺&#xff0c;附近很多乡镇都是奇怪的名字&#xff1a;大庙、双庙、佛照、玉贞观。我怀疑这…

单片机数字滤波算法如何实现?(附代码)

ID&#xff1a;技术让梦想更伟大整理&#xff1a;李肖遥单片机主要作用是控制外围的器件&#xff0c;并实现一定的通信和数据处理。但在某些特定场合&#xff0c;不可避免地要用到数学运算&#xff0c;尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机…

利用云计算打造政务信息化及应急指挥云平台

本文转载自星光云http://www.365yun.top/news/list.asp?newsid24云计算平台提供最全面的、集成度最高的开放平台&#xff0c;构建和管理面向运营、运维、用户服务的云数据中心管理平台&#xff1b;需集成计算、存储、网络、安全及管理&#xff0c;能够提供满足从基础设施到应用…

项目实战,平均负载过高,最后发现却是这个搞鬼

1.前言最近在项目上遇到负载均衡过高的问题&#xff0c;分析好几天&#xff0c;还因此移植了一个CPU检测工具&#xff0c;后面在小二哥的指导找到了问题原因&#xff0c;小二哥有些读者应该会比较熟悉&#xff0c;之前发的微信滑动卡顿就是他分析的&#xff0c;他是一个非常厉害…

虚拟机压缩

virtualbox虚拟机运行久了之后就会发现&#xff0c;磁盘镜像vdi文件越来越大。即使你把虚拟机中的大文件删除&#xff0c;这个vdi文件占用的空间还是不变。也就是说动态扩展的vdi文件只会大&#xff0c;不会小。那么大的文件对于备份和分享都不是很方便&#xff0c;所以有必要的…

QT——QT4.8.5安装与配置

Qt4.8.5安装 1、安装包 mingw32-4.4.0.7z qt-creator-windows-opensource-2.8.0.exe qt-win-opensource-4.8.5-mingw.exe 2、安装步骤 &#xff08;1&#xff09;、首先安装qt creator,双击qt-creator-windows-opensource-2.8.0,注意安装目录不要有空格和特殊字符, 假设安装…

Linux中,文件创建的时间是怎么保存的?

今天在微信群里有人提问&#xff0c;如果创建一个文件&#xff0c;创建这个文件的时间是保存在哪里的。所以就查到了这篇文章。在介绍inode结构体之前先做一个链接文件的实验&#xff1a;1.创建一个普通的文件test.txt&#xff0c;并写入内容查看&#xff0c;如下2.创建test.tx…

神琪宝贝

团队名称&#xff1a;神琪宝贝团队人员&#xff1a; 姓名&#xff1a;温广琪&#xff08;组长&#xff09;学号&#xff1a;1600802130博客&#xff1a;http://www.cnblogs.com/wenwenwgq/技术&#xff1a;C&#xff0c;Java&#xff0c;python&#xff0c;网站兴趣&#xff1a…

汇顶科技2021秋招笔试

来源于读者投稿&#xff0c;作者Angel。笔试时间&#xff1a;2020.08.24&#xff0c;20&#xff1a;00-21&#xff1a;00提醒&#xff1a;很多大公司秋招在七八月份就要投递简历&#xff0c;九月已经晚了。题型&#xff1a;通用部分单选10道 不定项选择题2道 填空题2道 开放题目…

科大讯飞2021笔试题

来源于读者投稿&#xff0c;作者Angel笔试时间&#xff1a;2020.09.12,19&#xff1a;00——21&#xff1a;00岗位&#xff1a;嵌入式软件开发题型&#xff1a;四道编程题&#xff0c;4*1040分题目1、定义一个n*m矩阵&#xff0c;找到两个不在同一行同一列的数字&#xff0c;使…

跨交换机VLAN配置

CCNP实验之&#xff08;跨交换机VLAN&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />跨交换机设置原则:存在一台VLAN服务器&#xff0c;可以存在多台vlan客户端&#xff0c;那么需要配置VTP域。交换机的连接需干线&…

详细记录丨Realtek RTL8188FU WiFi 驱动移植

1 参考资料 1、芯片数据手册&#xff1a;TL8188FCA.pdf2、驱动移植手册&#xff1a;Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf3、【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.3.pdf4、Linux 添加 WiFi 驱动&#xff1a;https://blog.csdn.net/sbddbfm/…

拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!

来源&#xff1a;数码之家文 | 禅哥这台机器在本人的eBay收藏夹里呆了很久&#xff0c;某日无意间扫了一眼收藏夹&#xff0c;突然发现卖家大降价&#xff0c;只要15刀&#xff0c;还有best offer选项。15刀你买不了吃亏&#xff0c;15刀你买不了上当。事不宜迟果断下手。根据非…

ZJOI2018 Round2 游记

day0 高铁上颓了一部电影,然后闭上眼睛就到了 醒来之后发现被绑了艹,袖子被打了个结,搞了 \(20\) 分钟才解开,真想把绑我的人吊起来 \(xxx\) 公交车上碰到一位长者,被教育了一顿 长者:"你们大学生呐,戴着一副眼镜,肯定不是读书读出来的,玩游戏玩多了吧?" 我:".…

使用PWM实现语音播放

本文转自ARM中文社区&#xff0c;作者&#xff1a;Xiaoya链接&#xff1a;https://community.arm.com/cn/b/blog/posts/nucleof429-2-pwm事实上大部分MCU都可以实现语音播放下面是一段音频数据的波形局部放大图&#xff1a;以一定的速度采样&#xff08;ADC&#xff09;这些波形…

C小项目 —— 学生选课系统

C小项目 —— 学生选课系统#include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h>typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t;#define CLASS_CLS system("cl…