源文件和程序

原创 2006年06月13日 11:33:00

连接:

如果一个名字可以在与其定义所在的变异单位不同的地方使用,就是它是具有外部链接的。如果某个名字只能在其定义所在的编译单位内部使用,它就被称为是具有内部链接的。

extern后面如果没有初始式,则说明这只是一个声明,不是定义,如果有初始式,那么就是定义。

inline函数必须在需要用它的每个编译单位里定义——通过完全一样的定义。

consttypedef都具有内部链接,通过explicitly的声明可以让const具有外部链接,如extern const int a = 77;

无名namespace可以用于使一些名字局部于一个编译单位,它的效果很像是内部链接。

除了在类和函数内部,其余的地方不要使用static,它也用于表示使用内部链接。

如果要包含标准库头文件,那么就使用尖括号<>,来自当前目录的使用引号""

关键字export的意思就是在其他的编译单位可以访问。

在C++中混合C,Fortran和汇编的时候,可以使用如下的声明:

        #ifdef_cplusplus

        extern  "C" {

        #endif

                char* strcpy(char*, const char*);

                int strcmp(const char*, const char*);

                // ...

        #ifdef_cplusplus

        }

        #endif

对于头文件的保护

//error.h

#ifndef CALC_ERROR_H

#define CALC_ERROR_H

...

#endif

通过函数返回的引用来代替全局变量,在函数内部声明为static。

如果一个程序利用exit()终止,所有已经构造起来的静态对象的析构函数都将被调用。那么在析构函数里调用exit()有可能导致无穷递归。

相关文章推荐

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: ...
  • dddxxxx
  • dddxxxx
  • 2017年05月17日 15:44
  • 862

自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。

自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。 package com...

从源文件到可执行程序(二)

关于目标文件 源程序经过编译器编译后生成目标文件。目标文件的格式基本和可执行文件相同,只是在进行链接之前,有些符号和函数的地址是未知的,还需要经过链接来进行调整。Linux系统中采用的可执行文件格式...

从源文件到可执行程序

gcc将源代码文件处理成可执行程序,要经过四个过程:预处理——编译——汇编——链接。 1、预处理 预处理过程主要处理的是#include、#define、#if、#else、#ifdef、#end...

把程序的定义与实现部分用头文件与源文件分开

把程序的定义与实现部分用头文件与源文件分开 把不同类分别放到不同的头文件与源文件当中,以构造良好的程序的设计风格。 下边以一个简单的例子MainTest将不同类分别放到不同的头文件与源文件中。 ...

程序是怎样跑起来的-第08章 从源文件到可执行文件

第08章 从源文件到可执行文件 热身问题 1:CPU可以解析和运行的程序形式称为什么代码?     本地代码(机器语言代码),通过编译源代码得到本地代码。 ...

关于C语言多个源文件编译成一个程序

第一次用CSDN的博客,慕名而来,决定好好经营下自己的技术博客。今天看《C和指针》中第二章编程训练的第一题,就是关于C语言多个源文件编译成一个程序的问题。之前自己一直都不太搞得懂这个,不过之前写的程序...
  • zoe_ly
  • zoe_ly
  • 2011年03月04日 20:27
  • 781

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2005专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决:...

筛选仅保留源文件的复制程序

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 磁盘空间约占用越大了,一些程序我们只想留源码,其它都不想留了(像obj,dll,link等),这样空间...

linux字符设备驱动程序源文件

/* *  linux/fs/char_dev.c * *  Copyright (C) 1991, 1992  Linus Torvalds */#include #include #include...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:源文件和程序
举报原因:
原因补充:

(最多只允许输入30个字)