小编Jon*_*bel的帖子

使用enum作为类型是否可以视为C语言中的一种好习惯?

考虑以下示例:

enum my_enum
{
    ENUMERATER_1,
    ENUMERATER_2,
    ENUMERATER_TOTAL,
}
typedef enum my_enum my_enum_t                 // just if using option 2

static int use_my_enum(int myenum);            // 1
static int use_my_enum(my_enum_t myenum);      // 2
static int use_my_enum(enum my_enum myenum);   // 3
Run Code Online (Sandbox Code Playgroud)

最佳做法是1、2或3,可以选择哪种选择?

事先,我的观点是,你应该总是使用类型int,因为enumsint由标准的,可以分配给任何值enum类型,如果你使用的任何其他选项,你可能有错觉,以为你不需要测试您的论点是否有效。使用int的类型enum参数,它更清晰,你应该总是确认输入参数。

我发现可能有理由在enum所有其他程序语言中都将as用作类型,但对于C而言却没有,是否有理由认为选项2或3比1更好?

结论:由于没有技术问题,因此确认这只是个人喜好是没有错的。无论如何,由于可读性,我将重新考虑我的第一个假设,并将选项#3作为稍微更好的做法。

c enums

2
推荐指数
1
解决办法
1302
查看次数

每个存储库 AuthzSVNAccessFile apache 规则与单个 apache 配置文件或其他 shell 脚本解决方案

我正在编写一组 svn 钩子来允许远程管理 SVN 存储库,就像 gitolite 对 GIT 所做的那样。

我创建了为我拥有的每个存储库生成 AuthzSVNAccessFile 的脚本,现在我需要告诉 Apache 根据存储库查找它们中的每一个。

我不能为每个存储库都有一个 apache 配置文件,因为它需要重新启动 apache 服务器。

我知道我可以使用单个 AuthzSVNAccessFile 来管理多个存储库,但是构建文件的脚本需要时间(需要发现存储库中每个目录的完整路径),并且会使提交花费太长时间。

我尝试使用mod_rewrite,但没有用,可能是我用错了。

基本上我需要在我的 apache 配置文件中有一个规则,根据请求的 URL 读取不同的文件,这可能吗?如何?

或者我需要一个能够重写文件块的脚本。我sed用来替换模板中的字符串,但不知道如何使用它来替换多行。

谢谢你的时间

svn apache shell mod-rewrite apache2

0
推荐指数
1
解决办法
2882
查看次数

标签 统计

apache ×1

apache2 ×1

c ×1

enums ×1

mod-rewrite ×1

shell ×1

svn ×1