亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 846 | 回復(fù): 0
打印 上一主題 下一主題

注意編程規(guī)范 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-08-27 21:39 |只看該作者 |倒序?yàn)g覽
    最近要將一個(gè)算法應(yīng)用到分布式系統(tǒng)中,以前由于急著想實(shí)現(xiàn)這個(gè)算法(涉及到矩陣),于是就使用了C++的stl(用了string和vector),主要是方便二維數(shù)組參數(shù)的傳遞以及數(shù)組長度的自動(dòng)管理,后來很方便的實(shí)現(xiàn)了。
   三天前開始把算法往系統(tǒng)中移植,問題來了。系統(tǒng)全部用C寫的,算法模塊用C++實(shí)現(xiàn)的,于是又一下幾種方式:
1,將整個(gè)系統(tǒng)用g++重新編譯成c++程序,因?yàn)橄到y(tǒng)與文件系統(tǒng)有關(guān),而kernel完全由C實(shí)現(xiàn),所以不做考慮。
2,C語言調(diào)用C++的函數(shù)?? google了一下,的確有這種方法(參看:
http://tzc.is-programmer.com/posts/551.html
),但程序由windows移植到linux后一直編譯/鏈接有錯(cuò)誤。
3,只能做最壞的打算了,用C語言重寫算法。

花了一天半的時(shí)間,把算法用C實(shí)現(xiàn)了一個(gè)功能精簡版本。(用一維數(shù)組模擬了二維數(shù)組,避免了復(fù)雜的二維指針傳遞的限制和復(fù)雜性)

當(dāng)我要把代碼移到linux下用gcc編譯時(shí),又出現(xiàn)問題了,提示跟前兩天編c++的程序一樣,大致意思是某某東西被多次定義了,檢查了幾分鐘,終于發(fā)現(xiàn)問題。

問題所在:
有以下文件 xx.h xx.c main.c
在windows下,由于我沒有建工程main.c不回主動(dòng)鏈接xx.o,所以為了方便調(diào)試,我在main.c里加了#include "xx.c", 于是順利通過。

在linux下,我使用 gcc -o main main.c xx.c 于是問題出現(xiàn)了重新定義之類的error一大堆,檢查的過程中我想到main.c中包含了xx.c,于是我想到兩種解決方法:
1,在main.c去掉#include "xx.c"
2,使用gcc -o main main.c
實(shí)踐證明,二者皆可行。

于是回過頭調(diào)C++的程序,馬上pass了。。。。。。兩天的時(shí)間就這樣被我浪費(fèi)了,主要是平時(shí)變成沒有注意規(guī)范。


注意的問題:
在預(yù)編譯時(shí),#include指令將包含的頭文件的內(nèi)容結(jié)合預(yù)處理指令擴(kuò)展到源文件中,在頭文件中最好只包含聲明(不是必須,不要包含頭文件),在同名(方便管理)的源文件中的一些聲明(需要包含頭文件,生成目標(biāo)文件時(shí)需要有語法檢查),在main.c中包含.h 即可編程。

頭文件應(yīng)該放些什么?
1,宏定義   結(jié)構(gòu)體,聯(lián)合體,枚舉的聲明   typedef聲明  外部函數(shù)聲明  全局變量聲明   
2,當(dāng)聲明或宏定義需要在多個(gè)文件中共享時(shí),尤其需要把他們加入到頭文件。
3,永遠(yuǎn)不要把外部函數(shù)原型(即外部函數(shù)聲明)放到.c文件中。
4,如果一個(gè)宏或聲明為一個(gè).c文件按私有,最好放在.c文件中。







本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u2/87570/showart_2039061.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP