亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在C ++中編寫簡短的文字?

如何在C ++中編寫簡短的文字?

C++
汪汪一只貓 2019-11-29 15:45:12
一個非?;镜膯栴}:如何short用C ++ 編寫文字?我知道以下幾點:2 是一個 int2U 是一個 unsigned int2L 是一個 long2LL 是一個 long long2.0f 是一個 float2.0 是一個 double'\2'是一個char。但是我怎么寫short文字呢?我試過了,2S但是給出了編譯器警告。
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

((short)2)

是的,嚴格來說,這不是一個簡短的字面量,更多的是強制轉換,但是行為是相同的,我認為沒有直接的方法。


那就是我一直在做的事情,因為我什么也找不到。我猜想編譯器足夠聰明,可以像編譯短文字一樣進行編譯(即實際上不會分配int然后每次都強制轉換)。


下面說明了您應該為此擔心多少:


a = 2L;

b = 2.0;

c = (short)2;

d = '\2';

編譯->反匯編->


movl    $2, _a

movl    $2, _b

movl    $2, _c

movl    $2, _d


查看完整回答
反對 回復 2019-11-29
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

C ++ 11使您接近所需的內容。(搜索“用戶定義的文字”以了解更多信息。)


#include <cstdint>


inline std::uint16_t operator "" _u(unsigned long long value)

{

    return static_cast<std::uint16_t>(value);

}


void func(std::uint32_t value); // 1

void func(std::uint16_t value); // 2


func(0x1234U); // calls 1

func(0x1234_u); // calls 2


// also

inline std::int16_t operator "" _s(unsigned long long value)

{

    return static_cast<std::int16_t>(value);

}


查看完整回答
反對 回復 2019-11-29
  • 3 回答
  • 0 關注
  • 536 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號