const usage with pointers in C

const char* is, as you said, a pointer to a char, where you can’t change the value of the char (at least not through the pointer (without casting the constness away)). char* const is a pointer to a char, where you can change the char, but you can’t make the pointer point to a different … Read more

Meaning of complex C syntax [duplicate]

c is an array of 10 function pointers that return a char* and take a int** as an argument. (*c[10]) ^^^^ = array of 10 (*c[10]) ^ = function pointer So right now we have an array of 10 function pointers. char *(*c[10]) ^^^^^^ = returns a char* char *(*c[10])(int** p) ^^^^^ = takes a … Read more

Are these compatible function types in C?

These two defect reports address your issue: Defect Report #316 Defect Report #317 Defect report 316 says (emphasis mine going forward): The rules for compatibility of function types in 6.7.5.3#15 do not define when a function type is “specified by a function definition that contains a (possibly empty) identifier list”, […] and it has a … Read more

Rationale behind the container_of macro in linux/list.h

It adds some type checking. With your version, this compiles fine (without warning): struct foo { int bar; }; …. float a; struct foo *var = container_of(&a, foo, bar); With the kernel version, the compiler reports: warning: initialization from incompatible pointer type Good explanation of how the macro works: container_of by Greg Kroah-Hartman.

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)