欧美色在线视频播放 视频,国产精品亚洲精品日韩已方,日本特级婬片中文免费看,亚洲 另类 在线 欧美 制服

<td id="8pdsg"><strong id="8pdsg"></strong></td>
<mark id="8pdsg"><menu id="8pdsg"><acronym id="8pdsg"></acronym></menu></mark>
<noscript id="8pdsg"><progress id="8pdsg"></progress></noscript>

    首頁 >> 創(chuàng)投 >

    assert_param是干什么用的(assert_param)

    2023-11-14 17:48:07 來源: 用戶: 

    大家好,小聯(lián)來為大家解答以上的問題。assert_param是干什么用的,assert_param這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!

    1、這是斷言機(jī)制。

    2、意思是在關(guān)閉斷言的情況下,void MY_NVIC_SetVectorTable(u32 NVIC_VectTab,u32 Offset){ assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); assert_param(IS_NVIC_OFFSET(Offset)); SCB->VTOR=NVIC_VectTab|(Offset&(u32)0x1FFFFF80);}就相當(dāng)于:void MY_NVIC_SetVectorTable(u32 NVIC_VectTab,u32 Offset){ (void)0; // 不執(zhí)行任何操作,對程序也沒有副作用 (void)0; // 不執(zhí)行任何操作,對程序也沒有副作用 SCB->VTOR=NVIC_VectTab|(Offset&(u32)0x1FFFFF80);}由于你的這個斷言沒貼完整,我就拿VC++6.0下的斷言來說明把。

    3、在VC++6.0下的assert.h中:#ifdef NDEBUG #define assert(exp) ((void)0)#else#define assert(exp) (void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )如果你寫的代碼中使用了斷言,比如:assert(i>=0);那么這句的在程序中的作用分兩種情況:1. 若果在assert.h被包含之前NDEBUG這個宏未定義,assert(exp) 就被定義為(void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )。

    4、這樣當(dāng)i=0這個表達(dá)式為假,所以程序就會終止。

    5、并通知程序員發(fā)生錯誤的文件位置和代碼行。

    6、但是錯誤信息僅僅對程序員有用。

    7、對用戶來說,程序異常終止就顯得不是那么友好了(用戶此時需要的是挽回錯誤)。

    8、所以在發(fā)布給用戶的程序中,assert(斷言)要關(guān)閉。

    9、在VC++6.0下這是通過在包含assert.h頭文件之前定義NDEBUG實(shí)現(xiàn)的。

    10、2.在定義了NDEBUG的情況下,斷言不應(yīng)該給程序帶來副作用。

    11、這樣斷言就被定義為:#define assert(exp) ((void)0)此時,assert(i>=0);不管括號中表達(dá)式為真還是為假,這一行代碼其實(shí)相當(dāng)于:NULL;意思是不執(zhí)行任何操作。

    本文到此分享完畢,希望對大家有所幫助。

      免責(zé)聲明:本文由用戶上傳,與本網(wǎng)站立場無關(guān)。財(cái)經(jīng)信息僅供讀者參考,并不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險自擔(dān)。 如有侵權(quán)請聯(lián)系刪除!

     
    分享:
    最新文章
    站長推薦