source: EcnlProtoTool/trunk/tcc-0.9.27/tests/tests2/94_generic.c@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-csrc
File size: 1.3 KB
Line 
1#include <stdio.h>
2
3const int a = 0;
4
5struct a {
6 int a;
7};
8
9struct b {
10 int a;
11};
12
13int a_f()
14{
15 return 20;
16}
17
18int b_f()
19{
20 return 10;
21}
22
23typedef int int_type1;
24
25#define gen_sw(a) _Generic(a, const char *: 1, default: 8, int: 123);
26
27int main()
28{
29 int i = 0;
30 signed long int l = 2;
31 struct b titi;
32 const int * const ptr;
33 const char *ti;
34 int_type1 i2;
35
36 i = _Generic(a, int: a_f, const int: b_f)();
37 printf("%d\n", i);
38 i = _Generic(a, int: a_f() / 2, const int: b_f() / 2);
39 printf("%d\n", i);
40 i = _Generic(ptr, int *:1, int * const:2, default:20);
41 printf("%d\n", i);
42 i = gen_sw(a);
43 printf("%d\n", i);
44 i = _Generic(titi, struct a:1, struct b:2, default:20);
45 printf("%d\n", i);
46 i = _Generic(i2, char: 1, int : 0);
47 printf("%d\n", i);
48 i = _Generic(a, char:1, int[4]:2, default:5);
49 printf("%d\n", i);
50 i = _Generic(17, int :1, int **:2);
51 printf("%d\n", i);
52 i = _Generic(17L, int :1, long :2, long long : 3);
53 printf("%d\n", i);
54 i = _Generic("17, io", char *: 3, const char *: 1);
55 printf("%d\n", i);
56 i = _Generic(ti, const unsigned char *:1, const char *:4, char *:3,
57 const signed char *:2);
58 printf("%d\n", i);
59 printf("%s\n", _Generic(i + 2L, long: "long", int: "int",
60 long long: "long long"));
61 i = _Generic(l, long: 1, int: 2);
62 printf("%d\n", i);
63 return 0;
64}
Note: See TracBrowser for help on using the repository browser.