小编Com*_*ger的帖子

在C宏中,应该更喜欢做{...}而(0,0)而不是{...}而(0)?

一位客户最近对我雇主的C代码库进行了静态分析,并向我们提供了结果.有用的补丁包括将着名do { ... } while(0)宏更改为的请求do { ... } while(0,0).我理解他们的补丁正在做什么(使用序列运算符将evaluate 返回到第二个"0"的值,因此效果是相同的)但是不清楚他们为什么喜欢第二种形式而不是第一种形式.

有没有合理的理由为什么人们应该更喜欢第二种形式的宏观,还是我们客户的静态分析过于迂腐?

c static-analysis c-preprocessor

16
推荐指数
3
解决办法
4728
查看次数

Perforce Howto?在分支之间同步/合并文件

(A) ------- (B) ----------- (C)
 |           |               |
Trunk  ReleaseBranch   DeveloperBranch
Run Code Online (Sandbox Code Playgroud)

开发人员在C分支中工作并签入所有文件.然后在C分支中标记修改的文件.部署的二进制文件是从B分支构建并标记的.目前这一切都是手动的.

在Perforce中,有没有一种简单的方法来实现这一点,比如根据标签合并分支等?

perforce

5
推荐指数
1
解决办法
1万
查看次数

DHCP在Linux上覆盖Cisco VPN resolv.conf

我正在使用Ubuntu 8.04(x86_64)机器连接到我雇主的Cisco VPN.(客户端没有开箱即用,但我找到了补丁来更新客户端以编译过去两年发布的内核.)这一切都很好,直到我的DHCP客户端决定续订其租约和更新/等/resolv.conf,用我的常规网络服务器替换特定于VPN的名称服务器.

在我的VPN处于活动状态时,是否有一种防止我的DHCP客户端更新/etc/resolv.conf的好方法?

linux vpn cisco

4
推荐指数
1
解决办法
5970
查看次数

printf语句错误?(在C中)*更新*

为了澄清目的,我需要程序打印输入a和b的数字,而不是实际的字母a和b.
好的,这是每个yall建议的修订程序:

int main (int argc, char *argv[])  
{
   int a; /*first number input*/  
   int b; /*second number input*/  

   a = atoi(argv[1]); /*assign to a*/  
   b = atoi(argv[2]); /*assign to b*/  

   if (a < b)  
      printf("%s\n", a < b); /* a is less than b*/  
      else {  
         printf("%s\n", a >= b); /* a is greater than or equal to b*/  
      }  

   if (a == b)  
      printf("%s\n", a == b);  /* a is equal to b*/  
      else {  
         printf("%s\n", a != …
Run Code Online (Sandbox Code Playgroud)

c printf if-statement

1
推荐指数
2
解决办法
1620
查看次数