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;
    }
    


  • 相关阅读:
    Oracle 删除某个用户下的对象
    解决11g导出时,空表不能导出问题
    Oracle常用sql
    Oracle 创建表空间和用户
    chapter4.1、函数,参数
    chapter3.6、标准库datetime
    chapter3.5内建函数
    简单选择排序和二元选择排序
    chapter3.4解析式、生成器
    列表解析练习
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5182848.html
Copyright © 2011-2022 走看看