unsigned 是等于 unsigned int

在 C/C++ 里,unsigned 单独写时,等价于 unsigned int

所以,unsigned 就是 unsigned int 的简写 ,但只适用于 int 类型。

c 复制代码
unsigned x;     // 等价于 unsigned int x;
unsigned int a;     
c 复制代码
#include <stdio.h>

#define SAME_TYPE(a, b) _Generic(a, __typeof__(b): 1, default: 0)
int main(){
    unsigned x = 2;     // 等价于 unsigned int x;
    unsigned int y = 2;
    if(x == y){
        printf("x == y\n");
    }else{
        printf("x != y\n");
    }

    if (SAME_TYPE(x, y)) {
        printf("x 和 y 的类型相同\n");
    } else {
        printf("x 和 y 的类型不同\n");
    }
    return 0;
}   

执行结果

c 复制代码
x == y
x 和 y 的类型相同

补充

这是语言标准规定的"简写"形式,其他类型(如 shortlonglong long)都不能这样省略关键字:

c 复制代码
unsigned short y;   // 不能写成 "unsigned y" 或 "short unsigned y"
unsigned long z;    // 不能写成 "unsigned z"

坑~~~~~~~~ 大坑

相关推荐
xqqxqxxq6 分钟前
Java 线程池(一)
java·开发语言
NashSKY20 分钟前
EM 算法完整推导与本质剖析
算法·机器学习·概率论
eggrall21 分钟前
Linux进程信号——像收快递一样理解 Linux 信号
linux·开发语言·c++
‎ദ്ദിᵔ.˛.ᵔ₎25 分钟前
c++ 11左值和右值
c++
foundbug99932 分钟前
MATLAB实现:基于图像对比度和波段相关性的高光谱波段选择算法
开发语言·算法·matlab
Hical_W33 分钟前
C++ Web 框架性能实测(Benchmark)
c++·开源
嘿嘿嘿x336 分钟前
Linux-实践
linux·运维·算法
czt_java43 分钟前
线程安全问题
java·开发语言·jvm
techdashen1 小时前
Rust 模块和文件不是一回事:一次讲清 `mod`、`use`、`pub use`
开发语言·后端·rust
Wy_编程1 小时前
go中的协程Goroutine
开发语言·golang