性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認證:優(yōu)質創(chuàng)作者
所在專題目錄 查看專題
不一樣的宏定義(C語言小知識)
函數(shù)的調用和回調(OS小知識)
C語言指針數(shù)組(C語言小知識)
C語言中函數(shù)調用與堆棧詳解
被C標準和編譯器選項給狠狠的上了一課
extern "C" 的意義?——盤一下GCC!
作者動態(tài) 更多
基于stm32采用PWM驅動伺服控制器學習筆記
5天前
基于STM32驅動TM1638學習筆記——軟件篇
04-19 12:42
基于TM1638驅動8位數(shù)碼管設計分享
02-24 11:26
RT-Thread驅動之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅動之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

被C標準和編譯器選項給狠狠的上了一課

  案發(fā)經(jīng)過:

  最近更新了的QPC6.9.1A的源庫,和往常一樣掏出了大佬已經(jīng)寫好的demo,根據(jù)平臺類型大佬給一分為三:qk(搶占式)、qv(合作式)、win32-gui(Windows平臺)

  果斷選擇最簡單的qv開擼,然后選擇編譯器類型,ARM-CM的內核還能選編譯器,不是選開發(fā)環(huán)境嗎?IAR或者KEIL,是的沒錯,其實他們的本質就是編譯器不同,除了開發(fā)環(huán)境以外,你可以選擇一款編譯器直接開擼,例如GNU。

  這里我選擇armclang,那是什么鬼?它是一個編譯器,是KEIL使用的編譯器,任何一款開發(fā)環(huán)境都需要編譯器的支持,ARM天下來來回回都是它們在辛苦的工作。

  第一次編譯就被來了個下馬威:TWO ERROR!

  找到這個定義的位置,看看什么情況,單從打印信息來看是講找不到定義。

  _delay的定義是與編譯器相關的,可是編譯器是內置的,應該不需要自己額外添加宏去打開編譯器。關于編譯器是什么樣的,他也沒有具體說清楚。IDE隱藏了太多的細節(jié)。

   繼續(xù)分析我們的錯誤,過程曲折,最終找到,是在C語言標準的問題上:

  C語言標準還是挺多的,C90 、C99 、C11 還有GNU版本??礃幼舆€是挺多的,我選的default,默認是GNU11版本。編譯錯誤消失了,但是問題不能這么放過,百度了一下關于C的標準,新標準兼容了很多新的東西,所以建議大家以后在配置工程時選用最新的C標準。

  另外關于GNU是什么鬼?GNU是編譯器,它也有很多能夠影響編譯規(guī)則的內容。

  國際標準組織發(fā)布c11后,gnu為自己的編譯器發(fā)布兩種標準gnu11和c11。

  gnu11:帶gnu c擴展的c11標準,如果你的代碼包含了typeof,__attribute__等等gnu的擴展,就必須用這個。

  c11:這個就是純c11的標準,不帶gnu擴展。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉載。授權事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 3
收藏 3
關注 150
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧