no linkage
От: Аноним  
Дата: 02.05.06 07:19
Оценка:
Вопрос по С, не по С++.

//some.h
typedef struct A
{
   int i;
}A_t;

void fun(A_t);

//some.c
#include "some.h"

void fun(A_t a)
{
}

//main.c
#include "some.h"

int main()
{
   A_t a = {0};
   fun(a);
}


Правильно ли я понимаю, что получающиеся в результате включения заголовочного файла some.h структуры в двух единицах трансляции — это разные структуры, хоть и compatible ?(6.2.7/1).
Где в стандарте С сказано, что допустим вызов fun из main.c с аргументом, имеющим совместимый (но все же другой тип) ? В 6.5.2.2/2 что-то говорится

Each argument shall have a type such that its value may be assigned to an object with the unqualified version
of the type of its corresponding parameter.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.