在iOS上默认是char签名还是未签名?
在iOS上默认是char
签名还是未签名?
(我以为这会是一个很好回答的问题,但奇怪的是谷歌没有任何用处!
在大多数情况下, char
在ARM上没有签名(出于性能原因 ),并在其他平台上签名。
iOS与ARM的常规约定不同,并且char是默认签名的。 (特别是与Android不同, 在ndk中编译的代码默认为unsigned char 。)
这可以在xcode中进行更改,有一个'char' Type is unsigned
选项(默认为closures)。 如果这个更改为“yes”,xcode会将-funsigned-char
传递给llvm。 (检查xcode 5.0.2)
在iOS ABI函数调用指南:ARM64函数调用约定中提到了iOS不同的原因,简单地说:
在iOS中,与其他达尔文平台一样,char和wchar_t都是签名types。
你为什么不试试呢?
char x,y; x=y=0x7F; x++; if(x>y) unsigned else signed...