相关疑难解决方法(0)

我应该如何在C中构建复杂的项目?

我只有初学者级别的C技能,并想知道是否有任何事实上的"标准"来构建C中有点复杂的应用程序.甚至基于GUI的应用程序.

我一直在Java和PHP中使用OO范例,现在我想学习C我害怕我可能以错误的方式构建我的应用程序.我无法遵循哪些指导方针,使用程序语言实现模块化,解耦和干燥.

你有任何建议吗?我找不到C的任何应用程序框架,即使我不使用框架,我总是通过浏览他们的代码找到好的想法.

c project-management

78
推荐指数
5
解决办法
4万
查看次数

如何有效地构建C程序

首先我要说的是,我在C和C++方面都有相当多的经验.但是,我正在用C开始一个新项目,我一直在使用面向对象的语言这么长时间(C#和C++),我无法想出一种有效的方法来将功能封装在一个过程语言中.我的第一个想法是简单地依靠我的OO知识并构造它:

struct Foo 
{
    int x;
    char *y;
}; 

struct Foo *new_Foo()
{
    return (struct Foo *)malloc(sizeof(struct Foo));
} 

void Foo_member_function(struct Foo *foo, int z)
{
    foo->x = z;    
}
Run Code Online (Sandbox Code Playgroud)

但这似乎很乏味,与C的精神相反.更不用说它是一个穷人的OO.

这个程序最终会变得相当大,所以从一个好的设计组织开始是至关重要的.我想,随着C语言的多年发展,某些设计模式已经发展到如何最好地构建代码以实现可维护性.与函数式编程非常相似,我希望过程式编程具有干净且可读性的范例.

指向相关文章和书籍的指针也是可以接受的.

c

29
推荐指数
2
解决办法
9829
查看次数

组织C文件

我习惯在一个C文件中完成所有编码.但是,我正在开展一个足够大的项目,这样做变得不切实际.我一直在#including他们,但是我遇到了多次#include一些文件的情况,等等.我听说过.h文件,但我不确定他们的功能是什么(或者为什么有2个文件比1)好.

我应该使用什么策略来组织我的代码?是否可以将"公共"功能与特定文件的"私有"功能分开?

这个问题促成了我的询问.tea.h文件没有引用tea.c文件.编译器是否"知道"每个.h文件都有一个相应的.c文件?

c file-organization header

28
推荐指数
4
解决办法
9349
查看次数

组织我的C项目代码及其外部库的最佳方法是什么?

我正在开始一个新的C项目,主要是基于OSS的.它也将在SourceForge上,我想借此机会学习组织此类代码的既定最佳实践.我正在使用像libcurl和libz这样的库,我将使用MinGW和MSYS编译它.

我将使用我的projet分发我正在使用的所有库的源代码,因此下载源代码的人不必去寻找依赖项.我该怎么称呼我存储库的目录?到目前为止,我在以下方面犹豫不决:

  • lib,因为它们是库.但是,'lib'在UNIX世界中有不同的含义.
  • src,因为它们是源文件.
  • 第三方,因为我没有写.

我应该在哪里编译这些库?我应该简单地将它们配置并安装到系统根目录,还是应该设置一个所有库应该编译到的目录,并从那里进行链接?显然,这会对我的Makefile产生影响.

我该怎么办呢?我应该遵循既定的惯例吗?他们写在某个地方吗?

c open-source

6
推荐指数
0
解决办法
2416
查看次数

在C中规划和组织应用程序开发的最佳方法是什么?

我只需要在C中编码几次,而且每次我都这样做,它就变成了一些无法管理的野兽.

我已经在C#和.Net中完成了大部分的编程,因此我非常习惯于类风格的体系结构,但我似乎无法掌握C语言应用程序中的组织.我应该把函数定义放在一个文件中,将函数定义放在一个文件中,然后在另一个文件中处理,等等.这个主题有没有什么好的资源?

另请参阅:从面向对象的土地中挣扎?

c

3
推荐指数
1
解决办法
1149
查看次数