关于Linux系统的 atomic_t 、 atomic64_t 和 atomic_long_t类型

 

实际上 atomic_t  和 atomic64_t 这两个类型 是linux 头文件("kernel/include/linux/types.h")里定义。

 

typedef unsigned long irq_hw_number_t;

typedef struct {
    int counter;
} atomic_t;

#ifdef CONFIG_64BIT
typedef struct {
    long counter;
} atomic64_t;
#endif
"kernel/include/linux/types.h"

 

它是一个结构体,所以不能直接在printf中转换为 unsigned int 等类型直接打印出来。编译器会报语法错误。

 

kernel/include/asm-generic/atomic-long.h:

       typedef atomic_t atomic_long_t;

atomic_long_t 实际上就是 atomic_t 类型。

 

你可能感兴趣的:([Linux_kernel])