全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1111
推到 Plurk!
推到 Facebook!

請問有關指令的問題

答題得分者是:larryleu
cang
一般會員


發表:2
回覆:0
積分:0
註冊:2004-12-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-01 01:11:30 IP:61.62.xxx.xxx 未訂閱
我在練習程式的時候 看到一個#pragma的指令 請問一下~她是做什麼用的 我再看turbo c的時候並沒有這個指令 是單晶片的一種用法嗎 還有我再學校老師交PIC實 也有用到如:#pragma bit key1 @PORTA.0 有人可以能幫我嗎? 謝謝
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-02 09:13:30 IP:210.69.xxx.xxx 未訂閱
pragma (Visual C++) pragma是一個可用來動態調整編譯器編譯選項的指令(directive),依據編譯器而定,不同的編譯器會有所出入 作者介紹一些常用的,先列在此處 (1)#pragma comment( lib, "lib_name.lib" )      =>指定目前程式所使用的library  (2)#pragma once     =>在編譯時,只編譯一次 (3)#pragma warning( disable : xxxx )     =>編譯時,將編號xxxx的警告關掉 (4)#pragma warning( once : xxxx)     =>xxxx號警告僅報告一次 (5)#pragma warning( error : xxxx)     =>視xxxx號警告為一個錯誤 (6)#pragma message("Compile_Message")     =>編譯時,在編譯輸出框架(Output pane)中加入Compile_Message文字 (7)#pragma pack( show | [n] )     =>指定struct、union及類別成員的alignment    現在開始一一仔細介紹 (1)#pragma comment( lib, "lib_name.lib" )  當你使用一個非編譯器提供的library時,需要讓知道這個library的路徑與指定這個library給編譯器 在告訴編譯器目前library的路徑之後(Tools / Options... / Directories / Show directories for: ->Library files) 雖然已經告訴編譯器目前library這個檔案的路徑,但還需要一個動作 就是指定目前程式所使用的library,有兩個方法      Ⅰ#pragma comment(lib,"lib_name.lib")      Ⅱ選擇Project->settings->link ->object/library modules 裡加入所指定或所需要的library    (2)#pragma once 一般在標題檔中加入,目的是在編譯時只編譯此檔案一次    --------------------------------------------------------------------------------    //header.h #pragma once // Your C or C++ code would follow:    --------------------------------------------------------------------------------    那與下列這樣的方式有什麼不同呢?       --------------------------------------------------------------------------------    //header.h #ifndef HEADER_NAME_H_ #define HEADER_NAME_H_ // Your C or C++ code would follow: #endif    --------------------------------------------------------------------------------    #pragma與#ifndef,#define,#endif都是preprocessing directives 在ISO/IEC 14882:1998(E)中第16章中有介紹,其中#pragma並沒有制定出一個共通的標準與使用格式 因為在每個編譯器中所制定出的#pragma格式可能不同,所以#pragma相對於#ifndef來說缺乏可攜式。 但如果只在VC的環境下寫程式時就不需要擔心了! 如果考慮到Portability的問題時,建議使用#ifndef,#define,#endif,否則使用那一個都沒有差別。 若對於Portability有興趣的話,可以參考這個網頁:C++ portability guide    (3)#pragma warning( disable : xxxx )     =>編譯時,將編號xxxx的警告關掉       =>意思是說當編譯時,碰到xxxx號警告時,將這個xxxx號警告濾除,不顯示出來 (4)#pragma warning( once : xxxx)     =>xxxx號警告僅報告一次 (5)#pragma warning( error : xxxx)     =>視xxxx號警告為一個錯誤 (6)#pragma message("Compile_Message")     =>編譯時,在編譯輸出框架(Output pane)中加入Compile_Message文字    (7)#pragma pack( show | [n] ) 有一個strcut如下:       --------------------------------------------------------------------------------    //sizeof(int) = 4 , sizeof(char) = 1 , sizeof(double) = 8  struct Student {         char sex;         unsigned int age;         double average;         };    int main() {         struct Student s1;         cout<<(void *)&s1.sex<
系統時間:2024-04-29 8:33:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!