原创 C++ Primer(第五版)4.9--4.11.3節練習
4.28 #include <iostream> using namespace std; int main() { cout << "char: " << sizeof(char) << endl; cout << "
原创 C++ Primer(第五版) 7.4--7.6節練習
7.33 pos位於類的作用域之外,無法直接使用,應改爲Screen::pos。 7.34 放在最後一行無法通過編譯,聲明中使用的名字,包括返回類型和參數列表使用的名字,都必須在使用前確保可見。 7.35 typed
原创 Linux網絡驅動示例之snull網絡接口(三):測試驗證
1. 編譯得到.ko文件後用insmod snull.ko添加模塊; 2. 在/etc/networks中添加網絡號: snullnet0 192.168.0.0 snullnet1 192.168.1.0 3
原创 C++ Primer(第五版)3.3.1--3.4.1節練習
3.12 (a)正確;(b)錯誤,元素類型不匹配;(c)正確。 3.13 (a)元素數量0;(b)元素數量10,每個都爲0;(c)元素數量10,每個都爲42;(d)元素數量1,值爲10; (e)元素數量2
原创 C++ Primer(第五版) 2.6.1--2.6.3節練習
2.39 類定義的最後要加上分號。 2.40 struct Sales_data { string bookNo; unsigned units_sold = 0; double revenue =
原创 C++ Primer(第五版) 2.4--2.5.3節練習
2.26 (a)錯誤,const對象必須初始化; (d)錯誤,const對象的值不能再改變。 2.27 (a)錯誤,非常量引用不能綁定到字面值; (b)合法;
原创 C++ Primer(第五版)7.2--7.2.1節練習
7.16 訪問說明符指定其後成員的訪問級別,其出現次數沒有嚴格規定,有效範圍直到出現下一個訪問說明符或到達類結尾。可在整個程序內被訪問的成員定義爲public的;只能被類的成員函數訪問,不能被使用該類的代碼訪問,定義爲private
原创 C++ Primer(第五版) 4.1.2--4.4節練習
4.1 105 4.2 (a) *(vec.begin())shiyong (b) (*(vec.begin())) + 1 4.3 兩個準則可以避免缺陷: 1. 不
原创 C++ Primer(第五版)3.1--3.2.3節練習
3.1 using聲明形式:using namespace::name,例如:using std::cin; using std::cout; 等。頭文件代碼一般不應適用using聲明。 3.2 #include <ios
原创 C++ Primer(第五版) 3.4.2節練習
3.24 #include <iostream> #include <vector> using namespace std; int main() { vector<int> ivec; int i; while (
原创 C++ Primer(第五版) 7.3.1--7.3.4節練習
7.23 #ifndef SCREEN_H #define SCREEN_H class Screen { public: using pos = std::string::size_type; Screen() = de
原创 C++ Primer(第五版) 3.5.4--3.6節練習
3.37 輸出結果是hello,每個字符佔一行。 3.38 指針的值只是所指對象的內存地址,將兩個地址值相加沒有意義。 3.39 #include <iostream> #include <cstring> #inc
原创 Linux設備驅動併發控制的簡單總結
設備驅動中併發控制的常用機制:中斷屏蔽,原子操作,自旋鎖,互斥量。 1. 中斷屏蔽: Linux的進程調度都使用中斷實現,屏蔽中斷也就屏蔽了內核搶佔引起的併發問題,但是中斷屏蔽只針對本CPU,不能解決多 個CPU引起的競爭。
原创 C++ Primer(第五版) 3.5.1--3.5.3節練習
3.27 (a)非法,buf_size不是常量表達式; (b)合法; (c)非法,只有當txt_size()是constexpr的才合法; (d)非法,字符串以'\0
原创 C++ Primer(第五版) 4.5--4.8節練習
4.17 前置版本:先將運算對象加1,將改變後的對象作爲求值結果;後置版本:將運算對象加1,但求值結果是運算對象改變之前的那個值的副本。 4.18 使用前置,pbeg先加1,再解引用,無法輸出第一個元素,而且最後會越界。 4.