//given 2 distinct types
struct Foo{ int a,b,c; };
struct Bar{ float x,y,z; };

//and a function that takes each type by pointer
void function(struct Foo* x, struct Bar* y){}

int main() {
    struct Foo x;
    struct Bar y;

    //why am I able to pass both parameters in the wrong order,
    //and still get a successful compile without any warning messages.
	function(&y,&x);
	
    //compiles without warnings.  
    //potentially segfaults based on the implementation of the function
}