C/C++常见问题集

        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前面

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值