[英]Do I need to cast to unsigned char before calling toupper(), tolower(), et al.?
[英]Do I need to cast unsigned chars?
我正在使用
unsigned char ucONE = (unsigned char)1;
作為全局變量。
這有必要嗎?
不可以,整數類型(包括3種類型的char
, unsigned char
和signed char
)可以隱式地相互轉換。 但是,由於這種行為可能並不總是有意的,因此一些編譯器會發出警告,並且某些代碼約定要求強制轉換以使轉換明確。
無論如何, 如果進行轉換 ,則應首選C ++轉換運算符,因為它們更受限制,因此更安全。 就您而言,這可能是static_cast
。
正如其他人已經暗示的那樣,全局變量並不總是最佳做法,並且值為1的變量(非常數)“ 1”有些許可疑,但是在不了解您的設計的情況下,很難判斷這些選擇是否合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.