一点 C 的小题目
来源:互联网 发布:联通怎么开副卡软件 编辑:程序博客网 时间:2024/06/02 02:38
关于接口设计的。
: 如果是我面试,可能会出这样的题目,哈哈。
:
: 1.
: char* strchr(const char* str, int c);
: 函数返回 str 中第一次出现 c 的位置,传入的是不可修改的 const char*,
: 为何返回的却是可修改的 char* ?
因为要考虑实参是 char* 和 const char* 两种情况。
char* 做参数调用的时候,往往是希望对结果位置的字符能进行修改的。
char* 转为 const char* 不需要显式地类型转换,反之则需要.
const char* 出现在参数的位置, 也能够兼容 char*; 而作为返回值得时候,则是 char*
能够赋值给 const char*,作为折衷,strchr 就选择了这个原型.类似的函数还有
strstr strrchr strpbrk 等.
不过这会带来类型安全上的小漏洞。
在 C++ 中,有更好地解决办法:
C++ 提供了两个 strchr
char* strchr(char* str, int c);
const char* strchr(const char* str, int c)
:
: 2.
: 有些头文件中这样声明常量:
: enum XXX
: {
: AAA,
: #define AAA AAA
: BBB,
: #define BBB BBB
: };
:
: 为什么用枚举声明常量后还要用宏在声明一次?
:
这样的代码常用于系统头文件中.比如 socket 支持的 ioctl 码的种类.
写成枚举是因为不用人为去维护这些常量的值,而用宏再定义一次则是为了能让代码
在编译期间检测系统是否支持该特性.
: 如果是我面试,可能会出这样的题目,哈哈。
:
: 1.
: char* strchr(const char* str, int c);
: 函数返回 str 中第一次出现 c 的位置,传入的是不可修改的 const char*,
: 为何返回的却是可修改的 char* ?
因为要考虑实参是 char* 和 const char* 两种情况。
char* 做参数调用的时候,往往是希望对结果位置的字符能进行修改的。
char* 转为 const char* 不需要显式地类型转换,反之则需要.
const char* 出现在参数的位置, 也能够兼容 char*; 而作为返回值得时候,则是 char*
能够赋值给 const char*,作为折衷,strchr 就选择了这个原型.类似的函数还有
strstr strrchr strpbrk 等.
不过这会带来类型安全上的小漏洞。
在 C++ 中,有更好地解决办法:
C++ 提供了两个 strchr
char* strchr(char* str, int c);
const char* strchr(const char* str, int c)
:
: 2.
: 有些头文件中这样声明常量:
: enum XXX
: {
: AAA,
: #define AAA AAA
: BBB,
: #define BBB BBB
: };
:
: 为什么用枚举声明常量后还要用宏在声明一次?
:
这样的代码常用于系统头文件中.比如 socket 支持的 ioctl 码的种类.
写成枚举是因为不用人为去维护这些常量的值,而用宏再定义一次则是为了能让代码
在编译期间检测系统是否支持该特性.
- 一点 C 的小题目
- 一点小题目
- 对extern "C"的一点小认识
- 对extern "C"的一点小认识
- C#string类的一点小细节
- c编译的一点小知识
- C++:今天写的一点小程序
- 题目236:心急的C小加
- 一些C基础的小编程题目
- 初学UNIX C时的一点小收获
- 关于C/C++中指针做形参的一点小分析
- 针对C#.NET各种代码生成器的一点小建议
- 针对C#.NET各种代码生成器的一点小建议
- Objective-C 开发的一点小总结(持续更新)
- C关于字符串操作的一点小总结
- 针对C#.NET各种代码生成器的一点小建议
- 《c缺陷与陷阱》里的一点小错误
- C语言内存管理机制的一点小问题
- 将dll作为资源,在xbap程序中调用
- IP Helper API 简介(转)
- 论木匠和程序员的异同[转]
- Select()系统调用及文件描述符集fd_set的应用
- 生成PDF文档例子
- 一点 C 的小题目
- 一段消除HTML标签格式的代码
- WEB-Linux上随机图片不能生成问题
- 让我们爱着的人都幸福(转)
- 项目成功 空降兵难成就
- 阿拉伯金额转中文大写及英文格式
- 详述MessageBox对话框对话按钮//图标信息常量缺省组合模式取消
- 先发布一个小软件——屏幕取点工具
- 一个女程序员第三年工作总结