Skip to content

Instantly share code, notes, and snippets.

@macmade
Created November 26, 2010 21:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save macmade/717220 to your computer and use it in GitHub Desktop.
Save macmade/717220 to your computer and use it in GitHub Desktop.
C / System informations
#include <stdio.h>
#define XSTR(s) STR(s)
#define STR(s) #s
int main( void )
{
printf
(
"\n"
"System informations:\n"
"\n"
"- Architecture: "
#if defined ( __i386__ ) || defined( __x86_64__ )
#if defined( __x86_64__ )
"x86-64\n"
#else
"i386\n"
#endif
#elif defined ( __arm__ )
"ARM\n"
#elif defined ( __ppc__ ) || defined ( __ppc64__ )
#if defined( __ppc64__ )
"PPC-64\n"
#else
"PPC\n"
#endif
#else
"N/A\n"
#endif
"- Standard-C: "
#ifdef __STDC__
"yes\n"
#else
"no\n"
#endif
#ifdef __STDC_VERSION__
"- Standard-C version: %li\n"
#else
"- Standard-C version: N/A\n"
#endif
#if defined( __STDC_HOSTED__ ) && __STDC_HOSTED__ >= 1
"- Standard-C hosted: yes\n"
#else
"- Standard-C hosted: no\n"
#endif
"- Strict ANSI: "
#ifdef __STRICT_ANSI__
"yes\n"
#else
"no\n"
#endif
"- LP64: "
#ifdef __LP64__
"yes\n"
#endif
#if defined( __ASSEMBLER__ ) && __ASSEMBLER__ >= 1
"- Assembler: yes\n"
#else
"- Assembler: no\n"
#endif
#if defined( __OBJC__ ) && __OBJC__ >= 1
"- Objective-C: yes\n"
#else
"- Objective-C: no\n"
#endif
#ifdef __cplusplus
"- C++: yes\n"
#else
"- C++: no\n"
#endif
"- GNU-C: "
#ifdef __GNUC__
"yes\n"
#else
"no\n"
#endif
"- GNU Fortran: "
#ifdef __GFORTRAN__
"yes\n"
#else
"no\n"
#endif
"- ELF: "
#ifdef __ELF___
"yes\n"
#else
"no\n"
#endif
"- SSP: "
#ifdef __SSP__
"yes\n"
#else
"no\n"
#endif
"- Register prefix: "
#ifdef __REGISTER_PREFIX__
"[ %1s ]\n"
#else
"N/A\n"
#endif
"- User label prefix: "
#ifdef __USER_LABEL_PREFIX__
"[ %1s ]\n"
#else
"N/A\n"
#endif
"\n"
#ifdef __STDC_VERSION__
, __STDC_VERSION__
#endif
#ifdef __REGISTER_PREFIX__
, XSTR( __REGISTER_PREFIX__ )
#endif
#ifdef __USER_LABEL_PREFIX__
, XSTR( __USER_LABEL_PREFIX__ )
#endif
);
return 0;
}
@macmade
Copy link
Author

macmade commented Nov 26, 2010

On my MacBookPro:

  • Architecture: x86-64
  • Standard-C: yes
  • Standard-C version: 199901
  • Standard-C hosted: yes
  • Strict ANSI: yes
  • LP64: yes
  • Assembler: no
  • Objective-C: no
  • C++: no
  • GNU-C: yes
  • GNU Fortran: no
  • ELF: no
  • SSP: yes
  • Register prefix: [ ]
  • User label prefix: [ _ ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment