前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tool之双斜线注释

Tool之双斜线注释

作者头像
Taishan3721
发布2019-07-10 15:21:59
1.2K0
发布2019-07-10 15:21:59
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

很多编码人员习惯于在单行注释时使用双斜线(//),因为输入方便。

不过VxWorks的开发人员可能就会遇到一个问题了

上图是在Workbench的DKM工程里添加一个c文件,该文件中只包含一个双斜线,编译工程就报错了:expected identifier or '(' before '/' token 在Tornado里,也会遇到类似的问题。这是为什么呢? 因为这个工程中,IDE使用的编译器是gnu,编译规则默认包含了-ansi

从gnu的手册中,可以看到-ansi等同于-std=c89,而c89那个年代,是不支持双斜线的

问题找到了,怎么解决呢?最简单粗暴的办法就是 -- 删了它!

再编译一下试试

搞定了!

荆溪惠子鬓鬅鬙,义理钻研到粹精。只是搞定还不行,我们还要知道为什么搞定。继续看手册

原来删除-ansi后,IDE就会将规则重置为-std=gnu89,而正是gnu89对c89做了一些扩展,其中就包含了这个双斜线注释。 那我们直接将规则设置为gnu89,甚至c99、gnu99之类的呢?

试一下,都没有问题。 不过,毕竟和c89相比,c99的变化太多,编译规则改动太大,可能会涉及到代码移植或兼容的问题,这就需要项目经理或技术负责人来统筹定制规则了。事实上很多公司都会制定自己的编码规范,其中就会包括注释的书写规则。因此我们这里就先使用gnu89吧。 刚刚验证的是DKM工程,我们再打开VIP看看。VIP中的ansi选项是用单选框形式提供的,那怎么修改呢?

直接在User Flags里填写就可以了。

这就是gnu编译器编译双斜线注释的问题。 提到gnu编译器,你是不是又想到一种办法?对,就是用diab编译器来编译工程。

试一下,果然没问题。难道diab默认没有使用ansi选项?看一下Build Console,它用的选项是-Xansi

这是什么鬼?看看diab手册,-Xansi的全称是-Xdialect-ansi。原来是厂家专门做的改进,就像是gnu89对c89的改进。

看看它改进了哪些,果然有这一条

好,到此为止,都搞定了! 这正是: 编译工具规则多,代码注释有风格。 便捷兼容孰取舍,统筹全局细斟酌。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档