『壹』 u_int 和uint 的疑問
歷史造成。在標准頭文件發明以前就有了用戶自定義類型。
u_ 用戶自定義, user
u -- 無符號 unsigned
實質版一樣,權兩個分別在2個頭文件里。
某編譯器 stdint.h 里有
typedef u_int8_t uint8_t; /* u_int8_t is defined in <machine/types.h> */
typedef u_int16_t uint16_t; /* u_int16_t is defined in <machine/types.h> */
typedef u_int32_t uint32_t; /* u_int32_t is defined in <machine/types.h> */
typedef u_int64_t uint64_t; /* u_int64_t is defined in <machine/types.h> */
『貳』 在程序中想定義一個64位的整形變數,但是設備中有32位的有64位的
int bits=sizeof(long);
#if bits == 32
#define Int64 long;
#else
#define Int64 long long;
#endif
在你的頭文件上添加這個,以後不管用什麼平台,都用Int64這個宏去定義64位的整形變數就可以了……其他類型的數據也可以用類似的方法去定義……
『叄』 STM32 uint32_t 在哪個頭文件里
該是typedef unsigned int uint32_t;
(uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision
這句的意抄思是把結構體指針指向的TIM_ClockDivision強制轉化成32位無符號整形數據
括弧在這里就是強制轉換