摘要:
关于断言,可以作为一种很强大的调试方式或者程序运行时的错误诊断但是断言也不是适合于各种地方,服务器软件和嵌入式程序一般不适用,断言会强制中断正在运行的程序,对于服务器等程序来说,将会是一个灾难。加上,断言会加剧CPU 的负载,其中会调用一些函数。作为调试时使用断言是个不错的选择一般断言:#ifndef NDEBUG assert( conditon ) ;#endif这样,你的断言会在没有定义NDEBUG 的时候检测是否assert(..)中的表达式为真,如果不为真,将终止程序但是,作为一种调试方式,assert()一般不用于判断用户的输入,而是断言程序在某个时刻的状态一定为真,当然,终止程序 阅读全文
摘要:
将依赖于用户输入的数据都看做不安全数据:1.空指针2.字符串的长度3.在限定有输入时的长度 的符号类型4.输入时候的符号5.严格判断输入的类型与所处理的数据的类型是否符合6.禁止格式化输出一般程序员在编写一个函数的时候,只会注意到函数的实现功能,往往忘记了在函数编写过程当中的一些安全因素其实这些东西才是一般大型的公司考察一个程序员是否成熟的标志,当然,只是一方面1:空指针一般在接受一个参数的时候,如果该参数是一个指针或者字符串,当然这里的字符串是传统的C 的char *string 类型你是否会考虑到可能传入的是一个空指针,如果函数中应用了一个空指针作为数据,将会导致程序因非法内存访问而终止所 阅读全文