On 09/13/2015 06:04 AM, Philipp Stephani wrote: > Daniel Colascione > schrieb > am So., 15. Feb. 2015 um 21:21 Uhr: > > typedef struct emacs_value_tag* emacs_value; > > > Would it make sense to not use a typedef here? Using a typedef means > that the type including its size is opaque and subject to change, which > can break ABI compatibility. I'd rather have something like: > > struct emacs_value { > // contains private fields > }; > > and then pass /struct emacs_value*/ around. You may have missed the "*" in the typedef. The difference is stylistic. There's no difference between foo and bar here. typedef struct valuex* value; void foo(struct valuex* x); void bar(value y); I find the typedef much more readable, however.