我们刚有了一个新的开发人员,我正试着为他设置Dev Studio 2005 (我们在这个办公室都在使用的版本),我们遇到了一个我以前从未见过的奇怪的问题。我有一些代码在我的系统上运行得很好,但他似乎无法编译它。我们已经追踪到他的dev studio副本忽略了预处理器指令。例如,在C/C++|预处理器|预处理器指令下的项目属性中,我添加了DEFINE_ME。它应该转换为编译器的/D"DEFINE_ME“。在我的开发环境中是这样的,但在他的<e
但我意识到,语用可以直接用于命令编译器。我感到困惑的是#操作是预处理的一部分,例如 /* statement one */ /* statement two */如果启动了调试模式,编译器甚至不会编译和检测语句2中的错误,但是#杂注如何直接命令编译器呢?另外,如果它控制编译器,有没有办法不使用#杂注呢?因为预处理后只剩下C代码了。
我正在用C语言开发一个网络数据包模拟器,它需要使用几个不同的struct定义,例如:{ short inta; short int c;默认情况下,编译器(Intel)将在b和c之后添加缓冲区,因此我可以使用#pragma pack预处理器命令或将-fpack-struct添加到编译器标志中。除了降低我的IO速度之外,使用标志而不是预处理