Кресты / Говнокод #9223 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
#include <iostream.h>

typedef short *(*bar2)(double);

typedef char *(*bar3)();

typedef long long int **(* bar5)();

typedef bar5 (** bar4)(bar3);
typedef bar4 (** bar1)(bar2);


typedef long long int *(*(*(*(*(**bar0)(short *(*)(double ))))(char *(*)()))());


long long int ** func5()
{
	static long long int  A = 42;
	static long long int* B = &A;
	return &B;
}

char* func3()
{
	return new char;
}

bar5 func4(bar3 A)
{
	return &func5;
}

short* fun2(double A)
{
	return new short;
};

bar4 fun1(bar2 A){
	static void* p = &func4;
	return (bar4)&p;
}

#pragma argsused
int main(int argc, char* argv[])
{
	void* p = &fun1;

	bar0 foo0 = (bar1)&p;
	bar1 foo1 = (bar1)&p;

	long long int ** pr1 = (*(*(*foo1)(&fun2))(&func3))();
	long long int ** pr0 = (*(*(*foo0)(&fun2))(&func3))();

	std::cout<<**pr1<<std::endl;
	std::cout<<**pr0<<std::endl;
	std::cin.get();

	return 0;
}

разбирался с указателями на функции

Запостил: sanchousf sanchousf, (Updated )

Комментарии (8) RSS

  • > *(*(*(*(*(**
    вот что мне не нравится в Си\СиКрестКрест, так это вот обилие таких смайликов
    Ответить
    • Если так можно писать, еще не значит, что следует. В нормальном коде такого не будет.
      Ответить
    • в нормальном коде на С++ обычно проще и гибче тип функции задавать как boost::function<int(long, double)>
      или использовать сразу вариант
      template <class Handler>
      void do_async_call(..., Handler h)
      {
      ....
      h(errcode, 10, var);
      }

      ну а typedef rettype (*functype)(args); оставим для С
      Ответить
  • Крис засмеялся и привлёк меня к себе. Я удобно устроился возле него, положив голову ему на грудь. Мы не заметили, как заснули.
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8