1.如果要在類內使用靜態成員變數(static)時,需要在
類內宣告,類外定義
。c/c++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class
fd_gaze_obj :
public
fd_gaze_api
}
...
//在類外定義(初始化)
char
* fd_gaze_obj::fdinfo = nullptr;
char
fd_gaze_obj::fdinfo_ver[1024] = ;
//靜態變數即使函式執行結束也不會銷毀
char
* getfdgversion()
char
* getapiversion()
//呼叫getapiversion函式時如果不使用靜態變數(全域性變數),那麼當getapiversion函式執行時候,getfdgversion已經執行
//過了,其中的區域性變數fdinfo則會被銷毀,就會導致char *gazeversion = getapiversion();時gazeversion得到乙個隨機值。
getsdkversion(
char
version[1024])
;
char
*gazeversion = getapiversion();
sprintf
(ver,
"123456789-%d-%s"
, 100001, gazeversion);
memcpy
(version, ver, 1024);
return
0;
}
//對於char* 返回型別的函式,可以用char* 定義的變數來接收其返回值;對於char*的函式,返回值可以是char,同樣可以用ch
//ar*的值來接收。
2.sprintf函式的使用
sprintf函式主要用於將各個型別的資料拼接成一串字串並寫入制定記憶體中。
c/c++ code?
1
2
3
4
5
6
7
sprintf
(
char
* buffer,
const
char
* format,[argument]...)
//其中buffer是char型指標,指向要寫入的記憶體。
//format是需要"組裝"的字串
//如上述例子:
sprintf
(ver,
"123456789-%d-%s"
, 100001, gazeversion);
//指的是將幾個引數組裝成「123456789-100001-%s」型別的字串,並將其位址賦給ver。
//需要注意的是,和printf一樣,int ---%d,float---%f,char/char* --- %s
3.對於別人只提供dll時,在sdk中只需要呼叫其提供的api介面即可,但要注意在不同的解決方案配置中右鍵—>屬性—>鏈結器—>常規—>附加庫目錄中的目錄則為dll庫的目錄,如果修改過則需要手動複製新的dll庫目錄到bin下。
4.注意如果解決方案下有很多專案的時候,注意生成dll時候順序不同會產生不一樣的結構,可以設定關聯關係讓其關聯生成(一旦某專案生成dll,則其他專案跟著生成)。
C語言相關 實習筆記
1 產生隨機數 include srand time null number rand 100 1 2 strstr eg p strstr s1,s2 從字串s1中尋找s2第一次出現的位置,返回指向第一次指向s2位置的指標,如果沒有找到,返回null。strchr eg p strchr s1,c...
實習小記1
最近在一家手機遊戲公司實習,從3月17到現在已經3個多月了.本來一開始說乙個月給500的補貼,還是在北京不太想去,可後來仔細想想,自己畢竟還在大學裡,過個這個暑假才公升大四,這樣的實習機會不太好找,而且公司也不算大公司,如果有機會參與做專案的話,學到的東西肯定不會少.最後還是和乙個自己班比較要好的同...
生產實習1
學習日誌 姓名 楊俊 日期 2018.6.20 今日學習任務 c語言基礎課程複習 今日任務完成情況 上課認真聽講,把之前遺忘的的c語言又都複習了一遍,按照老師要求上課敲寫 150行左右 今日開發中出現的問題彙總 移位運算子的指令運用不熟練,混合運算的過程中一開始沒有注意強制轉換 今日未解決的問題 無...