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

Change all the int type to another type using #define for large program

本文关键字:类型 #define 使用 用于 程序 大型 另一种 int      更新时间:2023-10-16

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

我正在考虑是否有可能做一个#define来替换所有int mpz_class.

我从一个小程序开始

#include <iostream>
#define int long long int
using namespace std;
int main(){
    // .... code
}

编译器已经在抱怨main必须返回int类型。

是否可以为#define添加例外? 或者这是一个非常糟糕的主意?

如果包含任何标准标头,则禁止重新定义关键字。在这里,您包含了<iostream>因此您的程序格式不正确。

否则,把自己打晕!等等,不,不要,因为这仍然很愚蠢。

相反,重构你的代码以使用一些叫做my_integer的新类型(但名称要好得多):

typedef int my_integer;

然后,当你想从int更改为mpz_class时,你只需更改my_integer的定义:

typedef mpz_class my_integer;

像这样使用不带 int 的 main:

#include <iostream>
#define int long long int
using namespace std;
main(){
    // .... code
}

简单的答案:尽管技术上可行,但不允许#define任何保留标识符。