c - 在 C 的宏中声明类型为 t 的变量

标签 c types macros

我需要在 C 中定义一个执行以下操作的宏。

swap_m(t,x,y) 交换类型为 t 的两个参数 x, y

我不太确定如何设置 xy 以键入 t。它可能非常简单,但我是 C 的新手,不太确定如何做到这一点。

最佳答案

尝试

#define SWAP(x, y, t) \
    do {
        t __temp = x;
        x = y;
        y = __temp;
    } while (0)

用作

int a = 1, b = 2;
SWAP(a, b, int);

关于c - 在 C 的宏中声明类型为 t 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12441576/

相关文章:

c++ - 将 defined(X) 返回为 true 或 false 的宏

c 预处理器 - 如果在特定日期后编译失败

c++ - 寻找完美数

c - 生产代码中的面向方面的 C(而非 C++)

types - 为什么 Rust 中没有任意大小的二进制整数类型?

c# - 从 GenericClass<T> 访问静态方法,其中 T 由 Type 实例给出

iphone - 我想在 Iphone 中将 NSData 转换为双倍值

c++ - 可变参数宏 : cannot pass objects of non-trivially-copyable type through '...'

c - C 中字符和字符串函数的二维数组

c - 打开 MPI 以分发和操作 PGM 文件中的二维数组