c - Adding const-ness to opaque handle -


if have created c module presents handle user pointer forward declared struct, so:

typedef struct foo_obj *foo_handle; 

if declare function prototypes use const qualified parameter thusly:

void foo_work(const foo_handle foohandle); 

how const-ness applied?

const struct foo_obj *foo_handle // struct foo_obj *const foo_handle  // b const struct foo_obj *const foo_handle  // c 

or ub?

b. ( there no undefined behavior code presented. )

the function call

void foo_work(const foo_handle foohandle); 

is equivalent

void foo_work(struct foo_obj* const foohandle); 

variable foohandle in function becode const pointer non-const struct foo_obj object. not able add const qualifier foohandle make pointer const object.

instead, if want have pointer const object, , keep struct hidden, must make typedef:

typedef const struct foo_obj* foo_consthandle; 

Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

jquery - javascript onscroll fade same class but with different div -