社区
C语言
帖子详情
如何有效地在C语言的环境下使用结构化编程
Naugineer
2012-01-19 08:35:20
在大型C语言程序中,势必需要把一组组内聚的函数组成一个个的模块,进行封装。但是C语言本生不支持模块的概念,需要使用一些额外的编程的约定。请问,各位有什么好的意见吗?
比如模块级变量如何对模块外进行隐藏?存在多个.c源文件的模块内数据如何共享?模块对外的接口如何定义?
...全文
108
8
打赏
收藏
如何有效地在C语言的环境下使用结构化编程
在大型C语言程序中,势必需要把一组组内聚的函数组成一个个的模块,进行封装。但是C语言本生不支持模块的概念,需要使用一些额外的编程的约定。请问,各位有什么好的意见吗? 比如模块级变量如何对模块外进行隐藏?存在多个.c源文件的模块内数据如何共享?模块对外的接口如何定义?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Naugineer
2012-01-28
打赏
举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]
要暴漏的就extern,不暴漏的就static,这有什么。。。
[/Quote]
是的,我发现我们这边很多老的代码,缺乏“暴漏”的概念。将大量的模块变量,都暴露给了整个工程,导致,程序的维护性,可读性很差
Naugineer
2012-01-28
打赏
举报
回复
[Quote=引用 3 楼 daviddb7 的回复:]
其实就是个概念,文件可以当成模块来用。
把模块内的函数全部做成static,并且声明也放在c文件里
仅把外部接口函数放在头文件里
变量也是类似的,模块内部的全部用static限制在本文件内
模块间的数据共享可以通过get/set函数进行,其它模块通过get/set函数访问模块内部的数据。
如果模块很大,需要多个源文件组成,思想也是类似的。
对外的头文件仅提供接口函数,其它的声明放……
[/Quote]
非常感谢您的回答。
我工作中接触到很多大规模的C语言的工程。但发现我们公司的工程大量泛滥的采用全局变量(extern)来传递数据。使得程序的维护和扩展性很差,也很难阅读。我在阅读Code Complete(代码大全)时,有提到C语言本身并没有模块的概念,但是,就像您说的那样,可以采用一些附加的编程规范来实现这一理念。
您的回答对我的帮助很大。
谢谢
飞天御剑流
2012-01-20
打赏
举报
回复
楼主可参考《C++大规模程序设计》一书,虽然语言是C++,但一样介绍了模块化的组织架构。
daviddb7
2012-01-20
打赏
举报
回复
其实就是个概念,文件可以当成模块来用。
把模块内的函数全部做成static,并且声明也放在c文件里
仅把外部接口函数放在头文件里
变量也是类似的,模块内部的全部用static限制在本文件内
模块间的数据共享可以通过get/set函数进行,其它模块通过get/set函数访问模块内部的数据。
如果模块很大,需要多个源文件组成,思想也是类似的。
对外的头文件仅提供接口函数,其它的声明放在自己的头文件里,不对外提供。
方式可以是这样:对外的头文件放在include目录内,make时加入-I;对内的头文件直接放在source目录下,其它模块搜索不到,自然无法引用。
当然这都需要一定的编码规范来限制,C语言本身是做不到的。
黑压压AiKoder
2012-01-20
打赏
举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]
要暴漏的就extern,不暴漏的就static,这有什么。。。
[/Quote]
up
qq120848369
2012-01-20
打赏
举报
回复
要暴漏的就extern,不暴漏的就static,这有什么。。。
AnYidan
2012-01-19
打赏
举报
回复
具体问题具体分析,看你侧重什么?
c++ 也为数据的封装付出了些许效率上的代价
mingchaoyan
2012-01-19
打赏
举报
回复
这个问题提得好有深度~~~
C语言
参考手册第五版【中文版】
1、
c语言
具有语法简洁的特点,相信用过其他语言... 4、 结构化,就是想一小块一小块的程序,这样写起来容易 5、 强语言类型,语法错误时在编译就可以发现 6、 功能强大,现在诸如nuix这样的操作系统就是用
c语言
写的
c语言
是结构化 模块化的编程语言,结构化程序设计和模块化结构
本文介绍了结构化程序设计和模块化结构的知识。1.结构化程序设计结构化程序由三种基本结构组成。(1)顺序结构。赋值语句、输入、输出语句都是顺序结构。当执行由这些语句构成的程序时,将按这些语句在程序中的先后...
C语言
结构化程序设计
C语言
基础知识之结构化程序设计
c语言
三种结构化程序设计方法,
C语言
中用于结构化程序设计的三种基本结构是什么...
C语言
中用于结构化程序设计的三种基本结构是:顺序结构、选择结构、循环结构。顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
C语言
中用于结构化程序...
c语言
是结构化 模块化,
c语言
是完全模块化和结构化的语言,怎么理解,什么是模块化和结构化...
满意答案佩佩韩衣吧2013.06.12采纳率:55%等级:12已帮助:29322人所谓模块化,简单的理解,就是说你的程序是由相互之间相对独立的模块组成。那么具体的说,一个稍微大一点的程序,不可能用一个.c源文件写上几十万行...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章