1、使用
printf
應當說是型別不安全的。所以才引入了
c++的流輸入輸出。
比如:#include "stdint.h"
#include "iostream"
using namespace std;
int main()
輸出是:
0xbfd831e0 0xbfd831dc
13823853877176303617 //error
1 21 0 //error
可以看到,
uint32_t
型別,我們用
lld時,出現了錯誤,
因為
printf
是根據型別,從起始位址偏移型別個位元組進行讀取資料。
使用c++
中的流便不會出現這個問題。在跨平台中,應當引起注意。
2、型別與位元組數【3】
%ld:long int, 32位平台
4 bytes
%lld: long long int, 32位平台
8 bytes
%lf:double
**************
typedef signed char int8_t
typedef short int int16_t;
typedef int int32_t;
# if __wordsize == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
#endif
參考:【1】
】 】 型別與位元組數
】 printf
實現的**
跨平台資料庫工具Azure Data Studio
azure data studio是一種跨平台資料庫工具,適用於在windows,macos和linux上使用microsoft系列內部部署和雲資料平台的資料專業人員。azure data studio 是從跨平台 visual studio code vs code 與其 mssql 擴充套件的交...
平台呼叫資料型別
wtypes.h 中的非託管型別 非託管 c 語言型別 託管類名 說明handlevoid system.intptr 32 位 byteunsigned charsystem.byte 8 位shortshortsystem.int16 16 位 wordunsigned shortsystem....
平台呼叫資料型別
wtypes.h 中的非託管型別 非託管 c 語言型別 託管類名 說明handle void system.intptr 在 32 位 windows 作業系統上為 32 位,在 64 位 windows 作業系統上為 64 位。byte unsigned char system.byte 8 位s...