1、什么是类型安全
根据查找的资料大概整理一下答案,
类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。
有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。
2、如何保证程序的类型安全
想保证程序的类型安全性,应尽量避免使用空类型指针void*,尽量不对两种类型指针做强制转换。
举例说明
在VC下编译一下代码,通过printf打印出来的结果是0.000000,通过cout打印出来的结果是2.64214e-308
#include <process.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int i = 15;
void* p = &i;
double m = *((double*)p);
//printf("%lf\n",m);
cout << m << endl;
system("pause");
return 0;
}
3、C++模板类的优点
它是类型无关的,因此具有很高的复用性;
它在编译时而不是运行时检查数据类型,保证了类型安全性;
它是平台无关的,具有可移植性;
可用来创建动态增加或减少的数据类型;
4、static的用途
在函数体内,被声明为静态局部变量,在该函数调用过程中其值只被初始化一次,之后维持不变;
在文件中声明为静态全局变量,只能在本模块内的所有函数访问,不能被模块外其他函数访问;
static函数,只能在本文件内使用,不能被其他模块调用;
在类中声明static成员变量和static成员函数,它表示属于该类而不属于该类中的任何特定变量或方法。
static成员函数没有this指针,static成员函数只能访问static变量,因为他们在编译期确定而不是在运行时确定。
5、指针和引用的区别
引用必须被初始化,而指针不必;
引用初始化就不能被改变,而指针可以;
不存在指向空值的引用,而存在指向空值的指针。
6、TCP/IP协议的层级结构
TCP/IP协议由物理层、数据链路层、网络层、传输层、应用层组成,OSI七层结构是,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
7、make: 警告:检测到时钟错误。您的创建可能是不完整的。
原因:如果上一次编译时为20091001,你把系统时间改成20090901后再编译就会报这样的错误.
解决:把时间改了或运行下来命令再make
find . -type f -exec touch {} \;
8、strptime 警告:赋值时将整数赋给指针,未作类型转换
用 gcc -dM -E - < /dev/null 可以获得一份列表
加#define _XOPEN_SOURCE到所有#include前面