欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

嵌入式筆試刷題(第36天)

11. const 有什么用途?(請至少說明兩種)

? 答案:

  • 修飾變量:變量只讀,防止修改。
  • 修飾函數(shù)參數(shù):保護傳入?yún)?shù),防止在函數(shù)內(nèi)意外更改。
  • 修飾返回值:保證返回值不被修改。
  • 修飾成員函數(shù):表示成員函數(shù)不會修改對象內(nèi)容。

? 講解:

常見用法示例:

const int a = 10; // 變量只讀

void func(const int* p); // 指針指向的數(shù)據(jù)不能改

class A {
public:
    int getValue() const; // 成員函數(shù)不會修改成員變量
};

12. 在C++程序中調(diào)用被C編譯器編譯后的函數(shù),為什么要加 extern "C" 聲明?

? 答案:

  • 因為 C++ 支持函數(shù)名重載,C語言不支持。
  • extern "C" 禁止C++編譯器對函數(shù)名進行改名(Name Mangling)。
  • 保證C++程序能正確鏈接C編譯的函數(shù)。

? 講解:

C++編譯器會把函數(shù)名帶上參數(shù)信息做"花名"處理,比如 int foo(int) 編譯成 _Z3fooi

加了 extern "C",編譯器就按C的規(guī)則保留原名:

extern "C" void foo();

這樣C++能直接找到C語言的符號,完成鏈接。

13. 給定int a,寫兩行代碼,設(shè)置第三位和清除第三位,保持其他位不變。

? 答案:

a |= (1 << 3); // 設(shè)置第3位為1
a &= ~(1 << 3); // 清除第3位為0

? 講解:

  • (1 << 3):把1左移3位,得到掩碼0x08。
  • |=:位或,設(shè)置某位為1。
  • &= ~:位與取反,清除某位為0。

第三位指的是從0開始數(shù)的第3位(也就是數(shù)值8的位置)。

14. 不調(diào)用庫函數(shù)的情況下實現(xiàn)一個 strcpy 函數(shù)。

? 答案:

char* my_strcpy(char* dest, const char* src)
{
    char* ret = dest;
    while ((*dest++ = *src++)); // 包括拷貝\0
    return ret;
}

? 講解:

跟之前第4題一樣,這里再強調(diào):

  • while ((*dest++ = *src++)); 把賦值和判斷合成一行,非常高效。
  • 拷貝結(jié)束標(biāo)志是拷貝了字符串結(jié)束符\0。

15. What will be printed as the result of the operation below, why?

void foo(void)
{
    unsigned int a = 6;
    int b = -20;
    (a+b > 6) ? puts("> 6") : puts("< 6");
}

? 答案:

> 6

? 講解:

  • a=6unsigned intb=-20int。
  • a+b中,b隱式轉(zhuǎn)換成unsigned,因為unsigned + sign,規(guī)則是提升到。

剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買

嵌入式筆試專欄 文章被收錄于專欄

本專欄系統(tǒng)整理了嵌入式方向筆試中常見的知識點和高頻考題,涵蓋基礎(chǔ)理論、常用算法、C語言陷阱、操作系統(tǒng)原理、驅(qū)動開發(fā)、常見外設(shè)通信協(xié)議(如 I2C/SPI/UART)、RTOS、Linux 內(nèi)核、以及實用電路知識等內(nèi)容。

全部評論

相關(guān)推薦

評論
點贊
收藏
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)