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

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

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

我正在考虑是否有可能做一个#define来取代所有intmpz_class

我从一个小程序开始

1
2
3
4
5
6
7
#include <iostream>
#define int long long int
using namespace std;

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

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

是否可以向#define添加例外?或者这真是个坏主意?


你是被禁止的,当且仅当A redefining关键字包括任何标准头文件。在这里,你是如此的程序包括III型。

否则,随便你!等等,不,不,这是愚蠢的,因为我很安静。

而不是使用一些代码,重构新型my_integer(所谓的,说,但一个多更好的名字):

1
typedef int my_integer;

然后,当你想更改到mpz_classint,你只是改变my_integer定义:

1
typedef mpz_class my_integer;


使用主没有这样的:int

1
2
3
4
5
6
7
#include <iostream>
#define int long long int
using namespace std;

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


简单的回答:你不可能在技术上没有任何的#define保留标识符。