`

id (void *)区别

 
阅读更多

参考文章:http://stackoverflow.com/questions/1304176/objective-c-difference-between-id-and-void

 

id指任意一个Objective C类的对象的指针,仅限于Objective C类的对象;

void *指一个未知类型或未知内容的指针,提供了一个对其他API的对象的指针;

 

建议最好不要使用void*,尽量用NSObject*替换id,这样编译器可以提供更好的检验。

分享到:
评论

相关推荐

    关于C++中void*的小作用浅析

    在C++编程语言中,`void*`是一个非常特殊的指针类型,它可以指向任何数据类型。这个特性使得`void*`在处理通用性、多态性和动态类型转换时发挥着重要作用。本文将深入探讨`void*`在C++中的小作用,并通过一个简单的...

    深入理解void以及void指针的含义

    void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int *pint;void *pvoid;...

    linuxC语言线程池实现CP命令

    //线程id unsigned waiting_tasks;//等待任务 unsigned active_threads;// bool shutdown;//停始状态 }thread_pool; //初始化线程池 bool init_pool(thread_pool *pool, unsigned int threads_number); //...

    【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构.doc

    - `id`: 数据库的ID,通常从0到15,用户可以通过命令切换不同的数据库。 - `avg_ttl`: 平均过期时间,主要用于统计目的。 - `expires_cursor`: 记录当前过期扫描的位置。 - `defrag_later`: 存放将来需要进行碎片...

    uC/FS ucfsV1.34 文件系统 真正的源码

    int (*dev_read)(FS_u32 id, FS_u32 block, void *buffer); int (*dev_write)(FS_u32 id, FS_u32 block, void *buffer); int (*dev_ioctl)(FS_u32 id, FS_i32 cmd, FS_i32 aux, void *buffer); } FS__device_type...

    pthread-Tutorial.pdf

    void *thread_function(void *arg) { // 线程执行的代码 return NULL; } int main() { pthread_t thread_id; int rc = pthread_create(&thread_id, NULL, thread_function, NULL); if (rc != 0) { // ...

    5.3 框架程序中的映射

    - **关联数据**:当需要通过一个对象找到另一个相关联的对象时,例如,通过用户ID找到用户对象,或者通过文件名找到文件句柄。 - **配置管理**:在配置系统中,可以通过键(如字符串)查找对应的配置项(可能是...

    线程池的源代码

    void * (*routine) (void *arg); //回调函数,任务运行时会回调此函数 void *arg; //回调函数的参数 struct tpool_work *next; //结点指针域 }tpool_work_st; //线程池链表属性 typedef struct ...

    vxworks下mux的使用

    void * muxBind (char * pName, int unit, BOOL (* stackRcvRtn) (void* , long, M_BLK_ID, LL_HDR_INFO * , void* ), STATUS (* stackShutdownRtn) (void* , void* ), STATUS (* stackTxRestartRtn) (void* , void*...

    pthread的helloworld

    2. **线程函数定义**:`void* func(void*)` 定义了一个线程函数,它接受一个`void*`类型的参数,并返回一个`void*`类型的值。在这个例子中,函数内部使用了`pthread_self()`来获取当前线程的ID,并打印出来。 3. **...

    线程&socket.pdf

    当通过`fork`函数创建一个新的进程时,该进程拥有自己独立的一套变量副本以及唯一的进程ID(PID),其时间调度也与父进程完全独立。而在一个进程中创建新的线程时,虽然每个新线程拥有自己独立的栈空间,但是它们...

    Junit测试Void方法

    static void insertData(String person_id, String person_name, String person_sex) throws Exception { try { // 一系列业务逻辑检查 } catch (Exception e) { System.out.println(e.getMessage().toString())...

    ucos在44B0上的移植

    OSTaskCreate(Task1, (void *)&Id1, &Stack1[STACKSIZE - 1], 1); OSTaskCreate(Task2, (void *)&Id2, &Stack2[STACKSIZE - 1], 2); OSTaskCreate(Task3, (void *)&Id3, &Stack3[STACKSIZE - 1], 3); OSStart();...

    用JUnit测试void方法

    static void insertData(String person_id, String person_name, String person_sex) throws Exception { try { // Check if person_id is a positive integer if (person_id.equals("") || estimate(person_id) ...

    GSM的AMR语音CODECS

    Word8 *id); /* * AMRDecode steps into the part of the library that decodes the raw data * speech bits for the decoding process. It returns the address offset of * the next frame to be decoded. ...

    Linux下进程及多线程编程

    其中,tidp 是要创建的线程的线程 id 指针,attr 是创建线程时的线程属性,start_rtn 是返回值是 void 类型的指针函数,arg 是 start_rtn 的参数。 下面是一个简单的线程创建示例程序: ```c #include #include ...

    waisock-API_User_Manual_cn.pdf

    - `void *pSSLCtx`: SSL上下文指针,可为NULL表示不使用SSL。 - `const char *psRemoteIP`: 远程主机的IP地址。 - `unsigned short usRemotePort`: 远程主机的端口号。 - `UINT64 ui64AttachUserFlag`: 附加用户...

    c++pthread 线程封装

    一个`void* (*)(void*)`类型的回调函数,这是线程的入口点,即线程开始执行的地方;以及一个`void*`类型的参数,传递给新线程的入口点函数。 以下是一个简单的C++封装`pthread`线程的例子: ```cpp #include #...

    NSData+AESCrypt库

    - (id)initWithBase64EncodedString:(NSString *)string; - (NSString *)base64Encoding; - (NSString *)base64EncodingWithLineLength:(NSUInteger)lineLength; - (BOOL)hasPrefixBytes:(const void *)prefix ...

    SN_STATIONE

    int CVICALLBACK WRITE_BARCODE (void *functionData); int CVICALLBACK LED_CTRL (void *functionData); int CVICALLBACK LED_CTRL_ON (void *functionData); char *temp; int main (int argc, char *argv[]) { ...

Global site tag (gtag.js) - Google Analytics