#ifndef FUNC_DECL_NO_ARGS_H_
#define FUNC_DECL_NO_ARGS_H_

#if defined(__cplusplus)
extern "C" {
#endif

extern void test_void();

extern char test_char();

extern short test_short();

extern int test_int();

extern long test_long();

extern long long test_long_long();

extern unsigned char test_unsigned_char();

extern unsigned short test_unsigned_short();

extern unsigned int test_unsigned_int();

extern unsigned long test_unsigned_long();

extern unsigned long long test_unsigned_long_long();

extern float test_float();

extern double test_double();

extern long double test_long_double();

#if defined(__cplusplus)
}  // extern "C"
#endif

#endif  // FUNC_DECL_NO_ARGS_H_
