C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

In Inspect sessions:
Use uppercase for TAL identifiers
Use the given case for C identifiers
In Binder sessions, use mode noupshift for lowercase C identifiers.
Matching Data Types
Use data types that are compatible between languages for:
Shared global variables
Formal or actual parameters
Function return values
Table 22 lists compatible TAL and C data types for each TAL addressing mode.
Table 22 Compatible TAL and TNS C Data Types
NotesC Data TypeTAL Data TypeTAL Addressing Mode
charSTRINGDirect
TAL INT signed range onlyshortINTDirect
longINT(32)Direct
TAL FIXED(0) onlylong longFIXED(0)Direct
floatREALDirect
doubleREAL(64)Direct
char *STRINGStandard indirect (.)
short *INTStandard indirect (.)
long *INT(32)Standard indirect (.)
long long *FIXED(0)Standard indirect (.)
float *REALStandard indirect (.)
double *REAL(64)Standard indirect (.)
For _far, see Note.char _far *STRINGExtended indirect (.EXT)
short _far *INTExtended indirect (.EXT)
long _far *INT(32)Extended indirect (.EXT)
long long _far *FIXED(0)Extended indirect (.EXT)
float _far *REALExtended indirect (.EXT)
double _far *REAL(64)Extended indirect (.EXT)
NOTE: In C, use _far only in the parameter-type list of an interface declaration to specify a parameter type that is
defined in TAL as an extended pointer.
Incompatibilities between TAL and TNS C data types include:
TAL has no numeric data type that is compatible with C unsigned long type.
TAL UNSIGNED is not compatible with C unsigned short type. TAL UNSIGNED(16) can
represent signed or unsigned values.
For more details on TNS C and TAL data types, see Variables and Parameters (page 109).
102 Mixed-Language Programming for TNS Programs