相关疑难解决方法(0)

Clang编译器的C enum的数据类型是什么?

我发布了其他问题:我应该使用什么类型的C enum的二进制表示?,通过答案,我必须知道我的编译器的枚举数据类型.

Clang编译器上C enum的数据类型是什么?

c enums types clang

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

确保C中的枚举名称唯一性,而不添加长前缀

我发现自己总是将枚举的名称附加到其值,因为否则我经常与其他枚举冲突,例如:

typedef enum
{
    A_ONE,
    A_TWO,
} A;

typedef enum
{
    B_ONE,
    B_TWO,
} B;
Run Code Online (Sandbox Code Playgroud)

在C中有更好的方法吗?

c enums c99

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

Enum值在全球范围内是否应该是唯一的?

我在"编程基础"课程中读到了enum值应该是唯一的,具有以下示例:

enum color = { red, orange, yellow };
enum fruit = { apple, orange, kiwi}; // error: orange is redefined
int kiwi = 42; // error: kiwi is redefined
Run Code Online (Sandbox Code Playgroud)

我也在这个问题上找到了相同的想法:两个枚举有一些共同的元素,为什么会产生错误?

枚举名称在全球范围内,它们必须是唯一的.


我在Ubuntu 14.10上的MonoDevelop中编写C#应用程序,我试图重现这种行为:

using System;

namespace FP
{
    class MainClass
    {
        enum color { red, orange, yellow };
        enum fruit { apple, orange, kiwi}; // error: orange is redefined
        int kiwi = 42; // error: kiwi is redefined
        public static void Main (string[] args) …
Run Code Online (Sandbox Code Playgroud)

c# enums monodevelop

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

C中枚举问题的重新声明

我的 C 项目中出现编译错误。我有一个包含此枚举的头文件:

typedef enum {
  RAD_ALLOWED= 0,         
  RAD_STOPPED ,
  RAD_OFF 
} Values_E;
Run Code Online (Sandbox Code Playgroud)

并在另一个带有此枚举的头文件中:

typedef enum {
  RAD_ALLOWED= 0,         
  RAD_STOPPED ,
  RAD_OFF 
} Values_X;
Run Code Online (Sandbox Code Playgroud)

当我将两个头文件包含在同一个 c 文件中时,我遇到类似于以下内容的错误:

214: error: previous definition of 'RAD_STOPPED ' was here
129: error: redeclaration of enumerator 'RAD_STOPPED '
Run Code Online (Sandbox Code Playgroud)

是的,两个枚举的内容是相同的,但名称不同,所以我不明白为什么会出现这个问题。请注意,包含这些枚举的两个头文件都是自动生成的,因此我无法更改它们的内容。

c enums scope compiler-errors redeclaration

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

标签 统计

enums ×4

c ×3

c# ×1

c99 ×1

clang ×1

compiler-errors ×1

monodevelop ×1

redeclaration ×1

scope ×1

types ×1