国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ARM 嵌入式 編譯系列 2.1 -- GCC 預(yù)處理命令 #error 和 #warning 詳細(xì)介紹 】

這篇具有很好參考價值的文章主要介紹了【ARM 嵌入式 編譯系列 2.1 -- GCC 預(yù)處理命令 #error 和 #warning 詳細(xì)介紹 】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#error 和 #warning

在C語言中,#error#warning 預(yù)處理指令可以用于在編譯時生成錯誤或警告信息,通常用于調(diào)試或當(dāng)代碼中某些條件未滿足時提醒開發(fā)者。當(dāng)這些指令被編譯器處理時,會自動包含出現(xiàn)這些指令的文件名和行號,所以你可以清楚地看到問題出現(xiàn)的位置。

#error

當(dāng)編譯器遇到 #error 指令時,它會停止編譯過程,并顯示一個錯誤消息,同時包含該指令的文件名和行號。這通常用于當(dāng)編譯器檢查到不滿足特定條件時,強(qiáng)制編譯失敗。

示例
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L 
#error "This file requires C99 or higher" 
#endif 

如果編譯器不支持 C99 或更高版本的標(biāo)準(zhǔn),上述代碼會導(dǎo)致編譯錯誤,并且會打印出 #error 所在的行號。

#warning

#warning 指令不是標(biāo)準(zhǔn)C的一部分,但一些編譯器如 GCC 支持它作為擴(kuò)展。當(dāng)編譯器遇到 #warning 指令時,它會繼續(xù)編譯,但會在編譯輸出中顯示一個警告消息,同時包含該指令的文件名和行號。

示例
#warning "This code is still under construction!" 

在編譯時,如果你的編譯器支持 #warning,上述代碼會導(dǎo)致顯示警告信息,并包含 #warning 指令所在的行號。

打印行號

在自定義錯誤或警告消息中,你也可以使用預(yù)定義的宏 __LINE____FILE__ 來顯示當(dāng)前的行號和文件名。

示例
printf("Warning occurred at line %d in file %s\n", __LINE__, __FILE__); 

在上面的代碼中,__LINE__ 將被替換為包含該 printf 語句的行號,而 __FILE__ 將被替換為當(dāng)前源文件的名稱。 總之,#error#warning 預(yù)處理指令可以幫助你在編譯時識別問題,它們自動包含文件名和行號,使得定位和解決問題更為直接。文章來源地址http://www.zghlxwxcb.cn/news/detail-814092.html

到了這里,關(guān)于【ARM 嵌入式 編譯系列 2.1 -- GCC 預(yù)處理命令 #error 和 #warning 詳細(xì)介紹 】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 GCC提供了一些專門的功能,用于訪問特定的硬件指令或者實現(xiàn)特定的優(yōu)化,它們被稱為\\\" __builtin \\\"函數(shù)。 這些

    2024年02月13日
    瀏覽(96)
  • 【ARM 嵌入式 編譯系列 4.2 -- GCC 鏈接規(guī)范 extern “C“ 介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí) 下篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 介紹 extern “C” 是一種鏈接規(guī)范,它用于告訴C++編譯器按照C語言的方式來鏈接代碼。這個主要用于在C++代碼

    2024年02月13日
    瀏覽(54)
  • 【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在移植 RT-Thread 到 cortex-m33(RA4M2)上的時候,在編譯的時候遇到下面問題:

    2024年01月23日
    瀏覽(73)
  • 【ARM 嵌入式 編譯系列 2.5 -- GCC 編譯參數(shù)學(xué)習(xí) --specs=nano.specs選項 】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 ARM 工具鏈 ( arm-none-eabi- ) 包括了一個叫作 --specs 的編譯器和鏈接器選項,這個選項允許用戶指定一個或多個 “specs” 文件,以影響編譯或鏈接階段的行為。Specs 文件包含一系列的命令行參數(shù),這些參數(shù)可以是編譯器選項

    2024年01月22日
    瀏覽(28)
  • 【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 詳細(xì)介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 GCC提供了一些專門的功能,用于訪問特定的硬件指令或者實現(xiàn)特定的優(yōu)化,它們被稱為\\\" __builtin \\\"函數(shù)。 這些

    2024年02月13日
    瀏覽(116)
  • 【ARM 嵌入式 編譯系列 6 -- GCC objcopy, objdump, readelf, nm 介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 詳細(xì)介紹 下篇文章:ARM 嵌入式 編譯系列 7 – ARM GCC 鏈接腳本詳細(xì)講解 objcopy 是 GNU二進(jìn)制工具集(binutils)的一部分,主要用于復(fù)制和轉(zhuǎn)換目標(biāo)文件。 在ARM GCC中, arm-none-eabi-objcopy 通常用于

    2024年02月13日
    瀏覽(79)
  • 【ARM 嵌入式 編譯系列 2.4 -- GCC 編譯參數(shù)學(xué)習(xí) -Wl,--gc-sections 】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在使用 GCC (GNU Compiler Collection) 進(jìn)行編譯時,可以通過不同的編譯參數(shù)(標(biāo)志)來控制編譯行為、優(yōu)化級別、警告輸出等。以下是您列出的一些 GCC 編譯參數(shù)的介紹: 參數(shù) 作用 –all-warnings 與-Wall 相同。 請改用后一個選

    2024年01月22日
    瀏覽(20)
  • 【ARM 嵌入式 編譯系列 4 -- GCC 編譯屬性 __read_mostly 詳細(xì)介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:【ARM 嵌入式 編譯系列 3.3 – gcc 動態(tài)庫與靜態(tài)庫的鏈接方法介紹】 下篇文章:【ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】 __read_mostly 是一個在Linux內(nèi)核編程中用到的宏定義,這是一個gcc編譯器的屬性,用于告訴編

    2024年02月13日
    瀏覽(28)
  • 【ARM 嵌入式 編譯系列 3.1 -- GCC __attribute__((used)) 使用】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 3 – GCC attribute ((weak)) 弱符號使用 下篇文章:ARM 嵌入式 編譯系列 3.2 – glibc 學(xué)習(xí) 在普通的 C/C++ 程序中,有的時候為了調(diào)試,我們會特別地注釋掉某個函數(shù)的調(diào)用。然而在編譯時,編譯器會發(fā)現(xiàn),代碼中實現(xiàn)了

    2024年02月12日
    瀏覽(42)
  • 【ARM 嵌入式 編譯系列 11 -- GCC __attribute__((packed))詳細(xì)介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結(jié) 下篇文章:ARM 嵌入式 編譯系列 11.1 – GCC attribute ((aligned(x)))詳細(xì)介紹 __attribute__((packed)) 是 GCC 編譯器的一個特性,它可以用于阻止編譯器為結(jié)構(gòu)體或聯(lián)合體的成員進(jìn)行對齊優(yōu)化,從而使

    2024年02月12日
    瀏覽(80)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包