c++ - Multiple definitions in different translation units -


i know 1 definition rule can define class in multiple translation units if have same tokens in same order, program weird me

file main.cpp

#include "source.h"  struct mystructure {     int field1;     float field2; };  int main() {      mystructure myvar;     myvar.field2= 2.0f;      mycustomfunction(myvar);      return 0; } 

file source.h

struct mystructure;  void mycustomfunction(mystructure& vv); 

file source.cpp

#include "source.h"  struct mystructure {     char otherfield;     int anotherone;     bool anotheranotherone; };  void mycustomfunction(mystructure& vv) {     vv.otherfield = 'a'; } 

i'm using msvc2012 , compiler isn't complaining. why that? normal?

it's hard compiler complain, since never sees conflicting declarations during same compilation. code not correct, unfortunately compilers don't pick every mistake, nor standard require them to.


Comments

Popular posts from this blog

Winapi c++: DialogBox hangs when breaking a loop -

vb.net - Font adding using PDFsharp -

javascript - jQuery iScroll clickable list elements while retaining scroll? -