For 32-bit BOOL is a signed char, whereas under 64-bit it is a bool.

https://stackoverflow.com/questions/31267325/bool-with-64-bit-on-ios/31270249#31270249

Definition of BOOL from objc.h:

/// Type to represent a boolean value.
#if (TARGET_OS_IPHONE && __LP64__)  ||  TARGET_OS_WATCH
#define OBJC_BOOL_IS_BOOL 1
typedef bool BOOL;
#else
#define OBJC_BOOL_IS_CHAR 1
typedef signed char BOOL;
// BOOL is explicitly signed so @encode(BOOL) == "c" rather than "C"
// even if -funsigned-char is used.
#endif
时间: 2024-10-23 22:38:41

For 32-bit BOOL is a signed char, whereas under 64-bit it is a bool.的相关文章

char、signed char、unsigned char的区别

ANSI C 提供了3种字符类型,分别是char.signed char.unsigned char char相当于signed char或者unsigned char,但是这取决于编译器! 这三种字符类型都是按照1个字节存储的,可以保存256个不同的值. 不同的是取值范围signed char取值范围是 -128 到 127unsigned char 取值范围是 0 到 255 signed char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,

[C知识点]char unsigned char signed char知识点

1.char,unsigned char, signed char 都是占一个字节. 2.signed char范围为 -128-127  0000 0000表示+0 1000 0000表示-0.+0和-0表示的值是一样的.为了不浪费这一位用1000 0000表示128 unsigned char范围为 0-256. 3. char根据编译器的不同,被解释成signed char或者unsigned char. 4.VC编译器.x86上的GCC都把char定义为signed char,而arm-

字符串的高级应用-char a[100] = "1+2=;3-2=;2*5=;8/4=;" 得到char a[100] ="1+2=3;3-2=1;2*5=10;8/4=2;"

1 #include<stdio.h> 2 #include<string.h> 3 4 int main() 5 { 6 char a[100] = "1+2=;3-2=;2*5=;8/4=;" ; 7 char b[100] = {0}; 8 char *s; 9 s = strtok(a, ";"); 10 while(s) 11 { 12 13 int i,j; 14 char c; 15 sscanf(s, "%d%c%d

.net程序错误:BadImageFormatException....如果在安装32位Oracle客户端组件的情况下以64位模式运行

OracleClient 程序要连oracle数据库,提示如下错误: 数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题. 1.IIS部署时 网上搜索了一下,有各种办法,试过多安装了一个64位的oracle11g客户端,还是不行.后来想到是否是iis的问题,之前配置iis的时候好像碰到过32位64位的一个设置,看了以前的博客之后把应用程序池做了如下设置

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Client,直接解压,设置Path就ok了.具体设置如下:1.下载32位Oracle InstantClient 2.将Oracle InstantClient解压到某目录 3.打开PL/SQL,在perference里面设置OCI Library和Oracle_home,例子如下:        

IIS发布后出现“如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题”错误

VS2010运行程序没有任何问题,但是发布到IIS以后,连接数据库时报错:“尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题.”,解决方法为: IIS应用程序池---高级设置----启用32位应用程序设为“TRUE”----加载用户配置文件设为“TRUE”

如果在安装32位Oracle客户端组件的情况下以64位模式

1.Oracle客户端32位和64位都可以连接Oracle服务端.所以“如果在安装32位Oracle客户端组件的情况下以64位模式”这个错误,不是Oracle本身的问题. 2.错误原因:应用程序和本机安装的Oracle客户端版本不一致的问题: 即:应用程序:64位   本机安装的Oracle客户端为32位. 解决方法:本机安装Oracle客户端64位. 我的本机是win7-64位,vs2005是32位,但我的工程编译的是:anycpu,因为我本机操作系统是64位,因此anycpu编译出来就是64

Asp.net_解决vs运行报在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题的bug方法

环境:操作系统win10 64位,开发工具vs2015 社区版,服务器数据库oracle 11g 64位,本机客户端oracle client 11g 64位,PLSQL Developer 也是64位版 以上开发环境,PLSQL Developer可以正常连接服务器数据库,然而运行项目代码后报以下错误: “System.InvalidOperationException”类型的异常在 System.Data.OracleClient.dll 中发生,但未在用户代码中进行处理 其他信息: 尝试加

:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 ---&gt; System.BadImageFormatException: 试图加载格式不正确的程序。

iis有程序池有一个属性  是否启用32位应用程序默认是true的特别注意windows2008 服务器系统iis默认的是true 这样发布一下也是必须要做的