防御性类型检测
来源:互联网 发布:万磁王和x教授 知乎 编辑:程序博客网 时间:2024/05/20 09:22
今天在看源码的时候 浏览到一个地方
先上代码
</pre><pre name="code" class="cpp"># define CHECKED_SK_CMP_FUNC(type, p) \ ((int (*)(const void *, const void *)) \ ((1 ? p : (int (*)(const type * const *, const type * const *))0)))大家可能一头雾水,为何1为true,还要后边的那一堆呢,
目的就是今天的主题,防御性类型检查,确保你传入的p类型是
(int (*)(const type * const *, const type * const *))这种类型.所以传参要谨慎
再举个例子
int* p = NULL;
1?p:(double*)p //error
1?p:(int*)p //ok
各位你们明白了吗,如果p不是()里面的类型,那么就会报一个编译错误说无法转换
0 0
- 防御性类型检测
- 防御性编程
- 防御性编程
- 防御性编程
- 防御性编程
- 防御性编程
- 防御性编程
- 检测类型
- 类型检测
- 检测类型
- 什么是防御性编程,如何进行防御性编程
- 防御性编程技巧
- 防御性编程简介
- 【ThinkingInC++】70、防御性编程
- 检测变量类型
- NAT类型检测方法
- NAT类型检测方法
- 检测文件编码类型
- Android Studio代码着色插件
- 面向对象三大基本特性,五大基本原则
- Android开发-数组运用-List点击通过数组传递Key-AndroidStudio
- Kafka剖析(一):Kafka背景及架构介绍
- 【Android】DES加密与解密
- 防御性类型检测
- cygwin的在线安装最快的镜像,http://mirrors.163.com/cygwin/,注意路劲不要修改不用手动的去输入64位还是32为的
- centos7.0安装docker
- 一天一个设计模式---装饰者模式
- c++实现几种整数小算法
- cglib代理详解
- 人件读书笔记(16)雇一名杂耍演员
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系