c/c++语言开发共享C++中signed main和int main的区别

前言今天看见大佬的c++代码,主函数”int main”打成了”signed main”,心生疑问,便去查阅。#pragma gcc optimize(3,”inline”,”ofast”);#inc


 前言

今天看见大佬的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的区别,希望对大家有所帮助。在此也非常感谢大家对<计算机技术网(www.ctvol.com)!!>网站的支持!

需要了解更多c/c++开发分享C++中signed main和int main的区别,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/992837.html

(1)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐