c/c++ 的零碎知识
来源:互联网 发布:java运维管理系统 编辑:程序博客网 时间:2024/05/01 14:08
1. int = 4;
(a++) = +a; //左侧不是一个有效变量,不能赋值
(++a) += (a++); // 真确可以赋值
2. 头文件中的ifndef/define/endif 干什么用?预处理
防止头文件被重复引用。
3. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”声明?
答:函数和变量被C++编译后在符号库中的名字与C 语言的不同,被extern "C"修饰的变量和函数是按照C 语言方式编译和连接的。
由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。
4. switch()中不允许的数据类型是?
实型。
5. C++中为什么用模板类?
(1)可以用来创建动态增长和减小的数据结构
(2)它是类型无关的,因此具有很高的可复用性
(3)它在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无关的,可移植性
(5)可用于基本数据类型
6. 程序什么时候应该使用线程,什么时候单线程效率高。
(1)耗时的操作使用线程,提高应用程序响应。
(2)并行操作时使用线程,如C/S 架构的服务器端并发线程响应用户的请求。
(3)多CPU 系统中,使用线程提高CPU 利用率。
(4)改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。
其他情况都使用单线程。
7. 用户级线程和内核级线程比较。
(1)用户级线程利用线程库提供的创建、同步、调度和管理线程的函数来控制用户线程,
内核级线程需要内核的参与、有内核来创建、撤销和调度。
(2)用户级线程不需要占用内核的宝贵空间。
(3)用户级线程若有一个因I/O而处于等待状态则整个进程就处于等待状态,
内核级线程则有利于多处理器的并发,但却占用了更多的系统开支。
8. 给结构体成员赋值
struct A {
int a;
int b;
int c;
};
int main (void)
{
// 可以用其点成员名字给其成员赋值
struct A a = { .a = 1, .b = 2, .c = 3 };
return 0;
}
- c/c++ 的零碎知识
- 【C++】零碎知识
- [C language]一些零碎知识的解释
- 关于C语言的一些零碎知识
- C语言的一些零碎知识
- Objective C 的一些零碎知识
- C/C++一些零碎的知识
- 零碎的Objective-C知识 (二)
- 零碎的Objective-C知识 (一)
- 零碎的Objective-C知识 (三)
- C/C++零碎知识总结
- C/C++零碎知识整理
- c语言*零碎知识便签
- c 的零碎笔记
- C/C++零碎知识整理(二)
- 查找错误的几个调试方法&一些C/C++的文章&一些零碎知识
- oracle的零碎知识
- 一些零碎的知识
- Ubuntu下单网卡多IP地址的配置
- 【数据结构】 二叉树 非递归遍历
- UVA 11987 Almost Union-Find(并查集)
- C语言变长数组
- 帧布局
- c/c++ 的零碎知识
- 求圆柱体的表面积和体积
- hdu 1711 Number Sequence(KMP)
- 如何用git创建和应用patch
- Linux下使用clock_gettime给程序计时 转载
- RandomAccessFile
- VM虚拟机内Linux上网配置问题(手机作为另一终端,共两个终端)图文教程
- 自定义AlertDialog布局
- 第4章 从目标到结果,成为执行达人