//g++ -o funcEntry funcEntry.hpp funcEntry.cpp
#include <iostream>
#include <string>
#include <map>
#ifndef FUNCENTRY_HPP__
#define FUNCENTRY_HPP__
enum LEVEL_TYPE
{
LEVEL_SYSTEM = 0 ,
LEVEL_PROGRAMMER ,
LEVEL_ORDINARY
} ;
typedef int (*funcEntryPoint) ( char *) ;
//define the pointer function ,we also name it the entry address of function
funcEntryPoint getFuncEntryPointByType ( LEVEL_TYPE type );
//we send different enum type value ,and get target function entry
int systemLevelEntryPoint ( char * ) ;
//send LEVEL_SYSTEM ,get systemLevelEntryPoint function entry
int programmerLevelEntryPoint ( char * ) ;
//send LEVEL_PROGRAMMER ,get programmerLevelEntryPoint pointer function
int ordinaryLevelEntryPoint ( char * ) ;
//after getting function entry point , we can regard it as the function itself
#endif