zoukankan      html  css  js  c++  java
  • 静态和动态断言调试

    敲代码的时候经常须要调试,以下给出静态和动态断言调试以及经常使用的内置宏。

    内置宏:

    __FILE__//输出文件名称

    __LINE__//所在行
     __DATE__//日期
     __TIME__//时间
     __FUNCTION__//函数名

    static_assert( 
        constant-expression, 
        string-literal 
    );
    静态断言是在编译时候用的。因此第一參数的值必须在编译的时候就能确定,比方长量。

    假设第二參数为提示信息。假设第一个參数的表达式值为假则在编译的时候会出错,并给出

    第二參数值。

    void assert( 
       int expression 
    );
    动态断言在程序执行时候用的,假设表达式的结果为假,则会中断程序。

    #include<iostream>
    #include<assert.h>
    using namespace std;
    
    void  test(int mouth)
    {
    	assert(mouth>=1&&mouth<=12);//动态断言
    	cout<<__FILE__<<endl;//输出文件名称
    	cout<<__LINE__<<endl;//所在行
    	cout<<__DATE__<<endl;//日期
    	cout<<__TIME__<<endl;//时间
    	cout<<__FUNCTION__<<endl;//函数名
    }
    int main()
    {
    	int mouth=12;
    	static_assert(sizeof(void *) == 4, "64-bit code generation is not supported.");//静态断言,假设是64 位系统则不支持
    	test(mouth);
    	cin.get();
    	return 0;
    }
    


  • 相关阅读:
    战火魔兽CJQ圣印问题
    sublime插件总汇
    js引用类型
    一、vue的数据双向绑定的实现
    渲染机制
    帆布指纹识别
    call、apply与bind在理解
    webpack的世界
    line-height与vertical-align
    'abc' 转换成[a, b, c]一道面试题的思考
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5182848.html
Copyright © 2011-2022 走看看