关于GCC编译有关问题

关于GCC编译问题
比如我有一个程序序 如下:
#include<stdio.h>
int main(void)
{
    printf("hello world\n");
;
}
原程序太大了,没法发上来,就用个小程序来替代下,就是这么个意思.
source insight 写的, 用虚拟机 上的12.04乌班图编译的时候,能成功.但是我如果把倒数第2行的空语句 ";"去掉,编译的时候 出现 :server_example1.c:186:5: error: expected declaration or statement at end of input
在centOS上编译也出现莫名其妙的错误,
.这只是其一,还有很多,有时候一改程序,可能就提示你的main函数. 你的注释未闭合的等等.很困扰,来个高人指点下下,小弟不胜感激.下面是出问题的主函数:
 
int main(int argc, char** argv) {
/* --UNP RPC TEST START-- */
 RPC_C_STATUS rc = 0;
 int i = 0;
 unpCfgpInfo_t *pUnpSoaInfo = NULL;
 unpCfgpInfo_t *pUnpSoaInfoSet = NULL;
 unpCfgpInfoWrapper_t unpCfgInfoWrapper;
 u_long ulPort = htonl(1);
 u_long ulVal = 0;
 char szBuf[20];
    unpCfgpInfo_t unpAstGetUtil[] = 
    {
  /*{SOID_cpuMonBusy1Per, SOA_LONG, &ulValue, sizeof(ulValue)},*/
  /*{SOID_sysDescr, SOA_STRING, szBuf, sizeof(szBuf)},*/
  {SOID_ifIndex, SOA_LONG, &ulPort, sizeof(ulPort), SOA_FLAG_IDX},
  {SOID_ifDescr, SOA_STRING, szBuf, sizeof(szBuf)},
  {SOID_ifInOctets, SOA_LONG, &ulVal, sizeof(ulVal)},
  {0}
    };
 channelAttribute_t channelAttr;
 /* 创建RPC通道 */
 channelAttr.iChannelType = RPC_CHANNEL;
 strcpy(channelAttr.RPC_SERVERIP, "1.0.0.3");
 strcpy(channelAttr.RPC_SERVERTYPE, "tcp");
 printf("rpc connectting\r\n");
 mRpcChannel = channelCreate(&channelAttr);
 if(NULL == mRpcChannel)
 {
  printf("%s %s %d \r\n", __FILE__, __FUNCTION__, __LINE__);
  exit(-1);
 }
 printf("rpc connectted\r\n");
 /* 初始化SOA数据集结构体 */
 /* pUnpSoaInfoSet = mallocCfgInfoSet(); */
 pUnpSoaInfoSet = &unpAstGetUtil[0];
 unpCfgInfoWrapper.ulMID = UNP_MID_M2LIB;
 unpCfgInfoWrapper.ulUserID = 0;
 unpCfgInfoWrapper.unpCfgSetSize = 3;
 unpCfgInfoWrapper.pUnpCfgSet = pUnpSoaInfoSet;
 unpCfgInfoWrapper.eHAFlag = 0;
/* while(i++ < 10)*/
 /*{
  ulPort = htonl(18);
  memset(szBuf,0,sizeof(szBuf));
  rc = mRpcChannel->CHANNEL_CFG_OPS->pCfgpParaInfoBulkGet(mRpcChannel, &unpCfgInfoWrapper);
  
  if(rc != RPC_C_OK)
  {
   printf("failed\r\n");
  }
  printf("%s: %d\r\n", szBuf, htonl(ulVal));
  sleep(1);
 }*/
 unpSysInformation_t systemInformation;
 rc = _special(RPC_GET_SYSINFO, NULL, 0, &systemInformation, sizeof(systemInformation));/*获取系统信息调用该函数*/
    printf("BootVer:%s\n",systemInformation.acBootVer);
    printf("HardVer:%s\n",systemInformation.acHardVer);
    printf("MacAddr:%s\n",systemInformation.acMacAddr);
    printf("SoftVer:%s\n",systemInformation.acSoftVer);
    printf("CPUUTPerSec:%u\n",htonl(systemInformation.ulCPUUTPerSec));
    ;  // 去掉这个.编译就报上面所说错误
 }
------解决方案--------------------
明显标号、注释有问题。

单行注释还是用//吧, 检测问题可以先大段删然后慢慢加看到底哪里出错了
------解决方案--------------------
春风吹得人心醉,代码太长难判对。
------解决方案--------------------
其实就是你不注意,哪里少了个括号或者分号等
------解决方案--------------------
用了中文标点?
------解决方案--------------------
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

------解决方案--------------------
引用:
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。


        偶就碰不到这问题,用习语言,管你全角,半角,管你多个分号,少个分号,全智能处理,不够智能就改造编译器,工具是为人服务的,干嘛要做工具的奴隶 ? 没事去唱下国际歌,工具的奴隶们  关于GCC编译有关问题
        

------解决方案--------------------
引用:
Quote: 引用:

偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。


        偶就碰不到这问题,用习语言,管你全角,半角,管你多个分号,少个分号,全智能处理,不够智能就改造编译器,工具是为人服务的,干嘛要做工具的奴隶 ? 没事去唱下国际歌,工具的奴隶们  关于GCC编译有关问题
        

最怕工具为人自动纠错,自动灾难恢复,自动心脏移植,……关于GCC编译有关问题