文档章节

关于C语言项目工程文件目录组织结构

01010101010101010101
 01010101010101010101
发布于 2014/01/03 21:09
字数 622
阅读 960
收藏 1

2011年12月29日
经常会在对源代码进行如何组织时犯难:
        1)头文件的内容应写些什么?
        2)函数的具体实现应放在哪个文件里?是否与头文件放在一处?
        3)自定义的头文件(.h)与定义函数(.c)是什么关系

注意:此时你需要有一定的编译原理的基础。
--------------------------------------------------------------------------------
====>  1)头文件里应写入的内容:xxx.h
                1)预处理块 :即一些宏的定义相关的#define \#ifndef \#ifdef
                2)函数和类结构【声明】
                3)头文件开头处的版权和版本声明

// 版权和版本声明见示例 1-1,此处省略。
 
#ifndef GRAPHICS_H //  防止 graphics.h 被重复引用
#define GRAPHICS_H
 
#include <math.h>   //  引用标准库的头文件

#include “myheader.h”  //  引用非标准库的头文件

void Function1(…); // 全局函数声明

class Box        // 类结构声明
{

};
#endif

====>   2)函数的实现应单独放在一个文件里-------我们称为定义文件  xxx.c
                1)  定义文件开头处的版权和版本声明
                2)  对一些头文件的引用-----------可能引用标准的头文件,或是自定的头文件(这里所引用头文件的要点是:只要你能完成些功能即可,不管你是什么手段)
                3)  程序的实现体(包括数据和代码)------
// 版权和版本声明见示例 1-1,此处省略。
 
#include “graphics.h” //  引用头文件

 
// 全局函数的实现体
void Function1(…)
{

}

====>  3) 头文件与函数定义没有直接的关系,(我们理解成好像各自为政的样子----------各作各的就行,函数定义最后是生成相应的库文件,即其也只编译到.o文件即可)
                1)需要明白头文件的功能:
                        1)最主要是完成编译阶段的功能。   -I来完成

                2)库文件--------当需要进行链接时,才会来查找对应函数的实现。 此时由 -l -L来共同完成


============================>说白了,在我们需要编写一个较大的可执行代码主要分为:
                1)编写头文件
                2)编写函数定义文件
                3)编写可执行文件===即我们的main函数相关的代码。

编写时:       

                 1)、2) =====》共同完库文件的工作
                 1)、3) =====》共同完成main文件的工作
                ----------------------------------------------->>>>>>>>>>>>>>>>再共同完成可执行文件

© 著作权归作者所有

共有 人打赏支持
01010101010101010101
粉丝 23
博文 93
码字总数 68915
作品 0
长宁
高级程序员
私信 提问
Linux GNU C语言项目组织工具 autotools 使用

转载说明: 虽然没有开发过C语言的大型项目,但一直对C语言的项目组织比较感兴趣。当然不是Visual Sutdio,CodeBlock 这类IDE的项目组织,而是GNU 系列开源工具。 如果在用过Linux系统就知道...

从前
2012/10/22
0
2
老男孩第十四期Python学习班之Day04

一、复习 略 二、鸡汤 视频文件播放不了 三、装饰器 1、装饰器: 定义:本质是函数,功能是装饰其他函数。就是为其他函数添加附加功能 原则:1、不能修改被装饰的函数的源代码 2、不能修改被...

Asktao
2016/08/18
496
0
初学Python——软件目录结构规范

为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。 可维护...

学霸初养成
2018/05/13
0
0
NDK开发笔记—ndk环境安装及其搭建

ndk环境安装及其搭建 软件下载 链接:pan.baidu.com/s/1cev9FK 密码:7yab 当然其他版本的也可以,建议不要用最新的 注意:执行Javah的时候生成头文件是对Java文件所生成的.class进行处理的命...

codeGoogle
2017/09/26
0
0
Android 之 JNI 开发 详解 - NDK从入门到精通

NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git 一. JNI介绍 1. JNI引入 JNI概念 : Java本地接口, Java Native Interface, 它是一......

SuShine
2016/11/04
92
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
2
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
6
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
3
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部