C++中signed main和int main的区别

 更新时间:2021年12月09日 17:29:49   作者:ZSYL  
这篇文章介绍了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的区别,希望对大家有所帮助。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • C语言职工信息管理系统源码

    C语言职工信息管理系统源码

    这篇文章主要为大家详细介绍了C语言职工信息管理系统源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • c语言字符数组与字符串的使用详解

    c语言字符数组与字符串的使用详解

    本篇文章是对c语言中字符数组与字符串的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言修炼之路数据类型悟正法 解析存储定风魔上篇

    C语言修炼之路数据类型悟正法 解析存储定风魔上篇

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-02-02
  • C++中使用cout以hex格式输出方式

    C++中使用cout以hex格式输出方式

    这篇文章主要介绍了C++中使用cout以hex格式输出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++实现统计代码运行时间的示例详解

    C++实现统计代码运行时间的示例详解

    这篇文章主要为大家详细介绍了C++一个有趣的小项目——统计代码运行时间,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • C++ namespace命名空间解析

    C++ namespace命名空间解析

    考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如它们生活在不同的区域或者兴趣爱好什么的,在C++程序中也会遇到同样的情况,所以命名空间就此产生
    2021-11-11
  • C++ I/O文件读写操作的示例代码

    C++ I/O文件读写操作的示例代码

    这篇文章主要介绍了C++ I/O文件读写操作的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 详解Linux的SOCKET编程

    详解Linux的SOCKET编程

    这篇文章主要介绍了Linux的SOCKET编程,并且进行了实例讲解,需要的朋友可以参考下
    2015-08-08
  • C++多线程之带返回值的线程处理函数解读

    C++多线程之带返回值的线程处理函数解读

    这篇文章主要介绍了C++多线程之带返回值的线程处理函数解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 函数指针的一些概念详解

    函数指针的一些概念详解

    首先看函数指针的语法,举一个最简单的例子,要创建一个函数指针,则它与它指向的函数,在参数个数类型以及返回值上都保持一致,跟重载的要求应该是一样的
    2013-09-09

最新评论