相关疑难解决方法(0)

权威C书指南和清单

这个问题试图收集社区维护的关于编程语言的优质书籍清单,目标是各种技能水平.

C是一种复杂的编程语言,通过阅读在线教程很难在旅途中学习.综合性书籍通常是学习语言的最佳方式,找到一本好书是第一步.重要的是要避免写得不好的书籍,更重要的是要避免包含严重技术错误的书籍.

请建议编辑接受的答案,以添加高质量的书籍,具有近似的技能水平和每本书的简短描述/描述.(请注意,问题已被锁定,因此不会接受新的答案.列表中会保留一个答案)

随意讨论书籍选择,质量,标题,摘要,技能水平以及您认为错误的任何其他内容.C社区认为令人满意的书籍将列在名单上; 其余的将定期删除.

对于由C和C++用户协会(ACCU)进行评论的书籍,应该与书籍一起添加指向这些评论的链接.

也可以看看:


这个问题在Meta上作为2018年删除问题审计的一部分进行了讨论.
达成共识的目的是保持其未被删除和积极维护.

c

401
推荐指数
1
解决办法
40万
查看次数

避免与C中的枚举发生名称冲突(C99)

enum 元素名称容易与其他枚举元素名称,变量名称等重叠/冲突...

enum Fruit
{
    apple,
    orange
};
typedef enum Fruit Fruit;


enum Color
{
    red,
    orange // <-- ERROR
};
typedef enum Color Color;


char apple='a'; // <-- ERROR
Run Code Online (Sandbox Code Playgroud)

除了为每个枚举元素名称加上前缀之外,是否有符合C99的解决方案来避免冲突?


旁注:这个问题已经为C ++提供了答案

如何避免在C ++中具有相同名称的两个枚举值的名称冲突?

我正在寻找C99解决方案。

c enums namespaces c99

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

多个枚举中的相同名称

我有几个enum具有相同的字段名称:

enum Response
{
  Ok = 0, 
  Busy = 1
}

enum Status
{
  Ok = 0, 
  LoggedOut = 1
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

错误:重新声明'确定'

怎么解决这个问题?

UPD

尝试使用枚举类:

enum class Response
{
  Ok = 0, 
  Busy = 1
}
Status s1 = Status::Ok ;
Run Code Online (Sandbox Code Playgroud)

得到错误:

Error: 'Status' is not a class or namespace
     Status s1 = Status::Ok ;
                 ^
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c ×2

c++ ×1

c99 ×1

enums ×1

namespaces ×1