Advertisement
DarkoreXOR

Untitled

Sep 21st, 2021 (edited)
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. // функции реализованные где-то снаружи
  4.  
  5. #ifdef __SUM__
  6.     int sum(int a, int b) { return a + b; }
  7. #elif __NEG__
  8.     int neg(int a) { return -a; }
  9. #endif
  10.  
  11. // указатели на функции
  12.  
  13. #ifdef __SUM__
  14.   int (*pfsum)(int, int);
  15. #elif __NEG__
  16.   int (*pfneg)(int);
  17. #endif
  18.  
  19. void initialize()
  20. {
  21.     #ifdef __SUM__
  22.         pfsum = sum; // aka GET_PROC_ADDRESS("sum")
  23.     #elif __NEG__
  24.         pfneg = neg; // aka GET_PROC_ADDRESS("neg")
  25.     #endif
  26. }
  27.  
  28. int main()
  29. {
  30.     // инициализация указателей на внешние функции
  31.    
  32.     initialize();
  33.  
  34.     // вызов функции в зависимости от условий компиляции
  35.    
  36.     #ifdef __SUM__
  37.         std::cout << pfsum(2, 3) << std::endl;
  38.     #elif __NEG__
  39.         std::cout << pfneg(7) << std::endl;
  40.     #endif
  41.    
  42.     return 0;
  43. }
  44.  
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement