gcc支持在#pragma语句中使用宏替换吗

2016-02-19 17:43 26 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐gcc支持在#pragma语句中使用宏替换吗,无聊中的都看过来。

【 tulaoshi.com - 编程语言 】


  问题:
  gcc编译器似乎对宏编译指令不支持宏替换,比如:
   #define PACK1 pack(1)
   #pragma PACK1
  
  
  回答:
  gcc 不支持#pragma行上的宏替换,参见:
  
  info gcc
  5.25 Declaring Attributes of Functions
  ...
   Some people object to the `__attribute__' feature, suggesting that
  ISO C's `#pragma' should be used instead. At the time `__attribute__'
  was designed, there were two reasons for not doing this.
  
   1. It is impossible to generate `#pragma' commands from a macro.
  
   2. There is no telling what the same `#pragma' might mean in another
   compiler.
  
  ...
  
  如此说来,使用#pragma在不同的编译器之间很难保证兼容性,
  假如非要用的话,至少在gcc下是不能同时使用宏替换的。

来源:https://www.tulaoshi.com/n/20160219/1615899.html

延伸阅读
标签: ASP
当你的查询相对简单的时候,每次从头开始创建SQL语句也不费什么工夫,不过,复杂的查询就不同了,每次都从头来会产生很多开发错误。因此,一旦让SQL顺利地运行起来,你最好把它们存起来,在需要时再调用它们。这样,哪怕是一个简单查询你都能随时用上存储的查询语句了。 假设你每周都要给团队做一次报告,指出目前存在的业务支持问题,这些数...
标签: PHP
经常看到这样的语句: $file = fopen($filename, r) or die("抱歉,无法打开: $filename"); or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错。但其处理过程可能有些朋友不大明白。 其实在大多数的语言中, bool or bool这样的语句中,如果前一个值为真后一个值就不会再判断...
标签: ASP
在学会了SELECT语句的构造和用途之后你就该学习如何使用它了。在你所掌握的数据库工具下,这可能意味着你得按下某个写着“执行”字样的按钮。在ASP网页上,可以立即执行SQL语句也可以当作存储过程调用。 一旦创建了SQL 语句,你还得设法访问其查询结果。显然,这里的关键就是ASP recordset。在使用非SQL的recordset时,创建recordset的代码通...
标签: ASP
从某个页面表单中取出信息是ASP编程中常见的问题。但是,遍历通过表单传递的记录会花去多长时间呢?这取决于数据库的大小。简单的GUI界面都可能令循环遍历操作耗费太多的时间。 比方说,假设有个团队成员登录到GUI屏幕输入自己的名字姓氏和名字之间用点号连接:amy.cowen。这个值通过表单提交,她的当前项目列表就从数据库中取了出来并显示在...
标签: ASP
  五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了。但你要同时采用ASP和SQL的话就可能会头晕。MySQL、SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句。不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网...

经验教程

188

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部