4-14
EPSOn
S5U1C17001C ManUal
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
4 SOUrCE filES
4)
long l_local_val = (long)boot;
→
A function name can be used to assign the pointer to the
long
type local variable
l_local_val
.
5)
char c_Global_Val;
void sub()
{
c_Global_Val = (char)boot;
}
→
A function name can be used to assign the pointer to the
c h a r
type global variable
c_Global_Val
except when it is declared.
(6) Function pointers can be used in C sources, note, however, that function pointers cannot be assigned to real type
(
float
/
double
) variables and arrays similar to (5) above.
They can be assigned to integer type variables and arrays.
However, when a global variable/array is declared, a function pointer cannot be assigned at the same time.
If it is not at declaration, a function pointer can be assigned to integer type global variables/arrays.
Integer type local variables/arrays always allow substitution with a function pointer regardless of whether it is
at declaration or not. However, a warning occurs depending on a combination of the address space size and the
type of global/local variable or global/local array.
In 24-bit address space (default condition) or 20-bit address space (when
-mshort-offset
only is specified)
A warning occurs if a function pointer is assigned to a variable/array other than
long
/
unsigned long
data types.
In 16-bit address space (when
-mpointer16
is specified)
A warning occurs if a function pointer is assigned to a variable/array other than
short
/
unsigned
short
/
int
/
unsigned int
data types.
Examples: In 16-bit address space (when
-mpointer16
is specified)
void (* fp_Pt)(void);
// Declaration of a function pointer with
// void type return value and argument
1)
short s_Global_Val = (short)fp_Pt;
→
An error occurs if a function pointer is assigned to the global variable
s_Global_Val
when it is
declared.
error: initializer element is not constant
2)
short s_local_val = (short)fp_Pt;
→
A function pointer can be assigned to the
short
type local variable
s_local_val
.
3)
long l_local_val = (long)fp_Pt;
→
Although a function pointer can be assigned to the
long
type local variable
l_local_val
, a
warning will occur.
warning: cast from pointer to integer of different size
4)
short s_Global_Val;
void sub()
{
s_Global_Val = (short)fp_Pt;
}
→
A function pointer can be assigned to the
short
type global variable
s_Global_Val
except
when it is declared.
Summary of Contents for S5U1C17001C
Page 6: ......
Page 17: ...1 General S5U1C17001C Manual 1 General ...
Page 18: ......
Page 21: ...1 2 Install S5U1C17001C Manual 2 Installation ...
Page 22: ......
Page 29: ...3 SoftDev S5U1C17001C Manual 3 Software Development Procedures ...
Page 30: ......
Page 103: ...4 SrcFiles S5U1C17001C Manual 4 Source files ...
Page 104: ......
Page 121: ...5 IDE S5U1C17001C Manual 5 gnU17 iDE ...
Page 122: ......
Page 365: ...6 Compiler S5U1C17001C Manual 6 C Compiler ...
Page 366: ......
Page 385: ...7 Library S5U1C17001C Manual 7 library ...
Page 386: ......
Page 405: ...8 Assemblr S5U1C17001C Manual 8 assembler ...
Page 406: ......
Page 439: ...9 Linker S5U1C17001C Manual 9 linker ...
Page 440: ......
Page 449: ...10 Debugger S5U1C17001C Manual 10 Debugger ...
Page 450: ......
Page 626: ...11 Tools S5U1C17001C Manual 11 Other Tools ...
Page 627: ......
Page 696: ...S1C17 Family C Compiler Package Quick Reference Reference ...