Search results
- Dictionaryopaque/ə(ʊ)ˈpeɪk/
adjective
- 1. not able to be seen through; not transparent: "bottles filled with a pale opaque liquid" Similar Opposite
noun
- 1. an opaque thing.
Powered by Oxford Dictionaries
struct foo; void doStuff(struct foo *f); // foo.c. struct foo {. int x; int y; }; If you really can't stand typing the struct keyword, typedef struct foo foo; (note: get rid of the useless and problematic underscore) is acceptable. But whatever you do, never use typedef to define names for pointer types.
It is the most generally used for library purpose. The main principe behind an Opaque type in C is to use data through its pointer in order to hide data handling implementation. Since the implementation is hidden, you can modify the library without recompiling any program which depend on it (if the interface is respected). eg: version 1:
Jun 24, 2019 · One common approximation of opaque types in TS is using a unique tag to make any two types structurally different: return value as any; return ((a as any) + (b as any)) as any; const c = eur(1) + eur(10) // Error: Operator '+' cannot be applied to types 'EUR' and 'EUR'.
Apr 16, 2019 · Apr 16, 2019 at 12:51. Shared header for the opaque type should contain a forward declaration (i.e. struct my_type;, without actual contents) and prototypes for functions which will know its contents. Other .c files can then reference it as a pointer (struct my_type*) and use the mentioned functions to access it contents indirectly. – vgru ...
Oct 10, 2009 · Not knowing anything about the structure is the name of the game so you're probably going to have to define some functions to manipulate them. Most C libraries that declare opaque structures often has accessor and modification functions. One example is from Lua (obviously a Lua state is an single use structure but it's the idea):
Dec 31, 2021 · somename.a = 1; printf("%d\n", somename.a); return 0; With a header file like this: // Opaque declaration. The code will compile fine. I could also define the structure in the header file and it will compile fine. However, if I define the structure in a different source code file and attempt to compile it with the main source code file it will ...
Nov 1, 2015 · in api.h, you state an opaque structure as follows: struct trytag_opaque. {. char data[sizeof(int)*2]; }; if you wanted to be more opaque than that, you could calculate the maximum size of the structure required across any supported platform, and use: struct trytag_opaque. {.
Jun 29, 2013 · Opaque is also being used to mean hidden, which is perhaps where the confusion comes in. The term opaque type has a specific meaning in C/C++, where it refers to a type that has been declared but not yet defined. In both cases, I think people are using these terms to express a lack of visibility.
Sep 26, 2011 · Opaque pointer is a pointer which points to a data structure whose contents are not exposed at the time of its definition. Example: struct STest* pSTest; It is safe to assign NULL to an opaque pointer. pSTest = NULL; edited Nov 9, 2019 at 3:55.
Sep 13, 2015 · EDIT: Based on additional research, I've opted to use void * pointers instead to provide an opaque interface to the library. This question is ok to close. Additionally, the linked question, although similar, is not the same as I was trying to define an opaque type in one header file, and then fill out the definition in a different header file because it is used in more than one file.