2015-11-13 5 views
-2

моя функция имеет 2 структуры в качестве входных данных. Один создается в другой функции, а другой - в функции «()». Но при компиляции я получаю ошибку, что-то ожидается bevor {второй структуры.C: Как объявить анонимную структуру

static void function() { 
    check(function_two("abcdefg"), {5,2,4,1,1,1}); 
    check(function_two("abcdefg"), {9,3,6,3,1,1}); 
} 
+2

Пожалуйста, сообщите полный код. – Haris

+1

И выход ошибки. –

+3

Что такое 'check'? Если это не макрос, это просто неправильный синтаксис. –

ответ

4

Если вы хотите создать анонимную-структуру, и вы используете C99 или более новую версию C, вы можете использовать compound literals. Вы должны написать:

static void function() { 
    check(function_two("abcdefg"), (MyStruct){5,2,4,1,1,1}); 
    check(function_two("abcdefg"), (MyStruct){9,3,6,3,1,1}); 
} 

где MyStruct - это название вашей структуры.

+0

Тогда компилятор ожидал ')' before '{' – Alex

+0

Какой компилятор вы используете? – Mabus

+0

Im using gcc-компилятор – Alex

-1
int check(struct V c, struct E e){ 
if(struct c == struct e){ 
    printiln("Check passed."); 
}else{ 
return 0; 
} 
return 0;} 

struct V{ 
    int a; 
    int b; 
    int c; 
    int d; 
    int e; 
    int f; 
}; 

struct E{ 
    int g; 
    int h; 
    int i; 
    int j; 
    int k; 
    int l; 
}; 

struct V c={0,0,0,0,0,0}; 
struct E e={0,0,0,0,0,0}; 
+0

Не могли бы вы объяснить свой ответ? –

Смежные вопросы