• #pragma once和#ifndef用法


    参考:https://www.cnblogs.com/qiang-upc/p/11407364.html

    1.两者都是用于为了同一个头文件在项目中被应用多次造成的变量重定义等问题

    2.#pragma写在头文件的第一行保证该头文件不会被引用两次,#ifndef的用法如下可以在头文件的任意位置,保证其中包裹的代码内容不被重复使用,一般清理包裹头文件中的全部代码:

    #ifndef _TEST_H_(自定义的宏名称)
    #define _TEST_H_(自定义的宏名称)
    int a=10;
    int x =10;
    #endif
     

    3.#pragma这种用法比#ifndef出现得早,所以有些比较老得编译器可能不支持#pragma,也就是#ifndef的兼容性更好

    4.#ifndef可以只将头文件的某段代码包含在内以保证该段代码内容不被重复引用,而#pragma则一般写在头文件的顶端只能保证整个头文件不被重复引用

    5.#ifndef后面需要接一个自己定义的宏名称,通过保证项目中不允许存在两个同名的宏来保证其中包裹的代码只能被引用一次,如果项目中有两个不同的头文件但使用了同样的宏名称,则会出现有一个头文件中的内容不能被引用的问题

    6.#pragma是根据头文件的名称来保证项目中不允许引用两个同名的头文件,如果项目中两个不同名称的两个头文件,但是两个头文件的内容一样,还是会出现重复定义的问题

  • 相关阅读:
    java设计模式----迭代器模式和组合模式
    Redis实现消息的发布/订阅
    java设计模式----模板方法模式
    java设计模式----适配器模式
    Filter注入对象
    java设计模式----命令模式
    css3中animation的应用
    bootstrap的学习注意点
    关于animate的一些属性
    ie的兼容方法,条件注释的方法
  • 原文地址:https://www.cnblogs.com/maycpou/p/14445374.html
Copyright © 2020-2023  润新知