在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...