0

VS10 在 uint8_t 下划线,表示它需要一个分号。

这是我的代码片段:-

uint8_t* pixelPtr = (uint8_t*)image.data; //this line shows the error (expected a ;)

然而,当我在代码中使用它时,它没有附加任何错误:-

typedef Scalar_<uint8_t> bgrPixel; //this line is error free
4

1 回答 1

2

您是否忘记了;以前的classstruct声明?如果是这样,那么它被解释uint8_t为一个变量名,它是那个structor的一个实例class

例如,如果您这样做:

class clown
{
    // yadda
    // yadda
    ... 
} // notice no semicolon here

uint8_t *pixelPtr = (uint8_t*)image.data;

编译器有效地看到:

class clown
{
    // yadda
    // yadda
    ... 
} uint8_t *pixelPtr = (uint8_t*)image.data;

并且在 之后自然要一个分号uint8_t,所以看起来更像这样:

class clown
{
    // yadda
    // yadda
    ... 
} uint8_t; // which would declare an instance of class clown named uint8_t
于 2013-11-04T07:13:10.647 回答