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);
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.
4-14
// Declaration of a function pointer with
// void type return value and argument
EPSOn
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
S5U1C17001C ManUal
Need help?
Do you have a question about the S5U1C17001C and is the answer not in the manual?