c++ - 对于大型程序,使用 #define 将所有 int 类型更改为另一种类型

标签 c++ c

我想更改程序中的所有 int 类型以支持任意位置整数。我选择使用 GMP

我正在考虑是否可以使用#define将所有int替换为mpz_class

我从一个小程序开始

#include <iostream>
#define int long long int
using namespace std;

int main(){
    // .... code
}

编译器已经提示 main 必须返回 int 类型。

是否可以向#define添加异常?或者这样做真的很糟糕?

最佳答案

<强> Redefining a keyword is prohibited iff you include any standard headers .在这里,您包括了<iostream>所以你的程序格式不正确。

否则,你就被淘汰了!等等,不,不要,因为这仍然很愚蠢。

相反,重构您的代码以使用某种名为 my_integer 的新类型。 (但有一个更好的名字):

typedef int my_integer;

然后,当您想从 int 更改时至mpz_class ,您只需更改 my_integer 的定义即可:

typedef mpz_class my_integer;

关于c++ - 对于大型程序,使用 #define 将所有 int 类型更改为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20942634/

相关文章:

c++ - 包含在头文件中与前向声明并包含在 .cpp 中

c - 我向不存在的IP发送tcp syn数据包,但没有得到响应

c++ - 使用范围库初始化std::vector

c - 使用 mmap 重叠页面 (MAP_FIXED)

c++ - C 中的多位 Trie 实现

c++ - 为什么此代码仅在零售中导致崩溃?

c - 将转换说明符作为参数传递给 printf()

c++ - 没有typedef返回成员函数指针的语法是什么?

c++ - 在C++中按升序打印多个数字

c++ - 普通数组的 QTreeView 模型