C++中signed?main和int?main的區(qū)別
?前言
今天看見大佬的C++代碼,主函數(shù)"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); }
因?yàn)轭^文件聲明:#define int long long
,然后int main改成signed main就行了
個(gè)人平時(shí)寫代碼最簡單的缺省源是:
#include<bits/stdc++.h> #define int long long using namespace std; signed main(){ return 0; }
注意到 #define int long long
而 main 函數(shù)必須返回一個(gè) int 值,所以不能使用 int main()。
那怎么辦呢?通常使用 signed main,因?yàn)?signed 等效替代于 signed int,也就是有符號(hào)整型,這與 int 別無二致,并且不會(huì)導(dǎo)致奇怪的 CE。
int本來就是signed int。int = signed int = signed,就像unsigned = unsigned int
當(dāng)你不確定過程中會(huì)不會(huì)爆 int 的時(shí)候,可以這么寫。
同樣的字節(jié)數(shù),如果保存符號(hào)位,范圍為正負(fù),數(shù)字位相對(duì)少一,絕對(duì)值范圍小
總結(jié):
頭文件聲明#define int long long
,防止爆int
主要區(qū)分
#define ll long long int main(){ ll int x; scanf("%lld",&x); } #define int long long signed main(){ ... }
一種獨(dú)特的定義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的區(qū)別,希望對(duì)大家有所幫助。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
結(jié)構(gòu)體類型數(shù)據(jù)作為函數(shù)參數(shù)(三種方法)
將一個(gè)結(jié)構(gòu)體中變量中的數(shù)據(jù)傳遞給另一個(gè)函數(shù),有以下三種方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-10-10C語言中不定參數(shù)?...?的語法以及函數(shù)封裝
不定參數(shù)是指函數(shù)可以接收不確定個(gè)數(shù)的參數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言中不定參數(shù)?...?的語法以及函數(shù)封裝的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01C語言編程數(shù)據(jù)結(jié)構(gòu)的棧和隊(duì)列
本篇文章是C語言編程篇,主要為大家介紹C語言編程中的數(shù)據(jù)結(jié)構(gòu),詳細(xì)的講解了數(shù)據(jù)結(jié)構(gòu)的棧和隊(duì)列有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09基于MATLAB神經(jīng)網(wǎng)絡(luò)圖像識(shí)別的高識(shí)別率代碼
今天小編就為大家分享一篇關(guān)于基于MATLAB神經(jīng)網(wǎng)絡(luò)圖像識(shí)別的高識(shí)別率代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03C語言手撕一個(gè)Hash表(HashTable)實(shí)例代碼
哈希表(HashTable)是一種非常重要的數(shù)據(jù)結(jié)構(gòu),它可以在常量時(shí)間內(nèi)進(jìn)行插入、查找和刪除操作,下面這篇文章主要給大家介紹了關(guān)于C語言手撕一個(gè)Hash表(HashTable)的相關(guān)資料,需要的朋友可以參考下2023-03-03Cocos2d-x中獲取系統(tǒng)時(shí)間和隨機(jī)數(shù)實(shí)例
這篇文章主要介紹了Cocos2d-x中獲取系統(tǒng)時(shí)間和隨機(jī)數(shù)實(shí)例,本文代碼含有大量注釋來講解獲取系統(tǒng)時(shí)間和隨機(jī)數(shù)的方法,需要的朋友可以參考下2014-09-09