zoukankan      html  css  js  c++  java
  • C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)

    (一)extern在头文件里的使用方法
    由于头文件包括在多个源文件里。而且变量的定义仅仅能出现一次,所以在头文件里。 仅仅能够声明不能够出现定义。

    我们能够在头文件里用extern声明全局变量,这样在包括此头文件的cpp 中可直接使用 声明过的这个全局变量(例如以下面程序中的变量a)。


    可是有三个例外:
    1.头文件里能够定义类
    2.值在编译时就已经知道的const对象

    3.能够定义inline函数

    extern int ival; // yes
    extern int ival=1; //error
    int ival; //error
    const int ival =3; //yes
    (二)使用头文件保护符避免多重包括
    #ifndef 检測指定的预处理器变量是否没有定义。#define接受一个名字并定义改名字为预处理器变量。

    #endif代表处理的边界。

    // mine.h
    #include <iostream>
    extern int a;
    const int b = 2;
    //int c;   error 提示反复定义
    
    //hello.cpp
    #include"mine.h"
    int f(int x)
    {
    	return a++;
    }
    //amin.cpp
    #ifndef TEST //检測指定的预处理器变量是否没有定义
    #define TEST //定义预处理器变量
    #include "mine.h"
    #endif    //end
    using namespace std;
    int a = 2; //extern 都是针对全局变量的(假设是局部的不能在还有一个cpp中使用)
    int main()
    {
    	cout << a << " " << b << endl;
    	return 0;
    }
    


  • 相关阅读:
    kubernetes安全机制
    Django 与 Vue交互跨域问题解决
    ELK收集Kubernetes平台日志
    minikube 安装
    k8s安装教程
    Go 语言Map(集合)
    Go 语言类型转换
    Go 语言递归函数
    今天学习:CSS中的类class和标识id选择符(.和#号) 第一季
    人工智能星际争霸2教程
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7080002.html
Copyright © 2011-2022 走看看