zoukankan      html  css  js  c++  java
  • #pragma once和#ifndef

    C语言中的头文件只是简单的复制粘贴。
    C语言中变量、函数、结构体的定义和声明两个过程是分离的。声明通常放在头文件中,为了防止重复声明,需要保证头文件中的内容在构建obj文件时只被包含一次。这可以通过#ifndef宏定义和#pragma once两种方式实现。

    #ifndef宏定义的方式:

    #ifndef SOME_UNIQUE_NAME_HERE
    #define SOME_UNIQUE_NAME_HERE
     
    // contents of the header
    ...
     
    #endif // SOME_UNIQUE_NAME_HERE
    

    #pragma once的方式

    #pragma once
     
    // contents of the header
    ...
    

    两种方式的优缺点:

    • #pragma once兼容性差,有些编译器并不支持这个宏命令。宏定义的方式能得到更广泛的支持。
    • 宏定义方式更加灵活,使得用户可以灵活控制某段代码是否编译。#pragma once的方式只能控制整个代码文件只编译一次。#pragma once的功能是宏定义功能的子集。
    • 宏定义需要定义一个宏名,这个宏名一旦冲突,错误十分隐蔽。
    • #pragma once语法更加简洁,可读性更好,而宏定义的方式需要写成三句话。
  • 相关阅读:
    柱状图
    开源版本Visifire的应用
    Jmeter录制脚本-BadBoy
    Jemter环境搭建
    DOS命令
    OSI七层模型
    Google浏览器PostMan插件版安装步骤
    理解JavaScript的caller,callee,call,apply
    .net http请求
    使用命令对象代替switch语句的写法示例
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/11043237.html
Copyright © 2011-2022 走看看