这篇文章给大家分享的是有关C++中signed main和int main有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
看见大佬的C++代码,主函数"int main"打成了"signed main",心生疑问,便去查阅。
#pragma Gcc optimize(3,"inline","Ofast");
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
signed main(){
double d;cin>>d;
printf("%.1f",d/59535);
}
因为头文件声明:#define int long long
,然后int main改成signed main就行了
个人平时写代码最简单的缺省源是:
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
return 0;
}
注意到 #define int long long
而 main 函数必须返回一个 int 值,所以不能使用 int main()。
那怎么办呢?通常使用 signed main,因为 signed 等效替代于 signed int,也就是有符号整型,这与 int 别无二致,并且不会导致奇怪的 CE。
int本来就是signed int。int = signed int = signed,就像unsigned = unsigned int
当你不确定过程中会不会爆 int 的时候,可以这么写。
同样的字节数,如果保存符号位,范围为正负,数字位相对少一,绝对值范围小
总结:
头文件声明#define int long long
,防止爆int
#define ll long long
int main(){
ll int x;
scanf("%lld",&x);
}
#define int long long
signed main(){
...
}
一种独特的定义longlong的方法:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int p=1e9+3;
int T,n,m,a,fac[100010]={1};
signed main()
{
for(int i=1;i<=100000;i++) fac[i]=fac[i-1]*i%p;
scanf("%lld",&T);
while(T--)
{
int res=1,ans=1;
scanf("%lld %lld",&n,&m);
for(int i=1;i<=n;i++) scanf("%lld",&a),res=res*fac[a]%p;
for(int i=1;i<=m;i++) scanf("%lld",&a),ans=ans*fac[a]%p;
if(res==ans) puts("equal");
else puts("unequal");
}
return 0;
}
感谢各位的阅读!关于“C++中signed main和int main有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。