mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Don't need to explain [1] kluge anymore in xfunc.sgml.
This commit is contained in:
parent
2e211211a7
commit
0627eff360
@ -1885,17 +1885,12 @@ typedef struct
|
||||
<programlisting>
|
||||
typedef struct {
|
||||
int32 length;
|
||||
char data[1];
|
||||
char data[FLEXIBLE_ARRAY_MEMBER];
|
||||
} text;
|
||||
</programlisting>
|
||||
|
||||
Obviously, the data field declared here is not long enough to hold
|
||||
all possible strings. Since it's impossible to declare a variable-size
|
||||
structure in <acronym>C</acronym>, we rely on the knowledge that the
|
||||
<acronym>C</acronym> compiler won't range-check array subscripts. We
|
||||
just allocate the necessary amount of space and then access the array as
|
||||
if it were declared the right length. (This is a common trick, which
|
||||
you can read about in many textbooks about C.)
|
||||
The <literal>[FLEXIBLE_ARRAY_MEMBER]</> notation means that the actual
|
||||
length of the data part is not specified by this declaration.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
Loading…
Reference in New Issue
Block a user