为什么要编译?
存放了这样一段源码
#include
int main()
{
printf("hello,world\n");
return 0;
}
要执行这样一段程序,需要一下几个步骤:
这一时期编译器完成头文件插入,宏替换,生成文件hello.i
hello.i中的内容依然是c代码。
源码已粘贴到文末(足有800多行)
#开头的语句是预编译指令
#include // 就是一句预编译指令:告诉编译器在预编译时期使用stdio.h中的内容粘贴到此处
编译器将hello.i中的c代码翻译成汇编代码,生成汇编文件hello.s
源码已粘贴到文末
//汇编代码
.file "main.c"
.text
.def __main; .scl 2; .type 32; .endef
.section .rdata,"dr"
.LC0:
.ascii "Hello, World!\0"
.text
.globl main
.def main; .scl 2; .type 32; .endef
.seh_proc main
main:
pushq %rbp
.seh_pushreg %rbp
movq %rsp, %rbp
.seh_setframe %rbp, 0
subq $32, %rsp
.seh_stackalloc 32
.seh_endprologue
call __main
leaq .LC0(%rip), %rcx
call puts
movl $0, %eax
addq $32, %rsp
popq %rbp
ret
.seh_endproc
.ident "GCC: (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0"
.def puts; .scl 2; .type 32; .endef
编译器将汇编代码翻译成机器码,生成机器码/二进制文件hello.o
为什是二进制文件呢?
个人理解4:
因为我们的计算机的的输出输出端口只有两个状态,对应的机器码也是两个状态,就是二进制的咯。
hello.o中并不包含程序运行所需的所有二进制文件,因为我们在源码中使用了printf函数,而我们的源码中并不包含printf函数的实现。
printf函数的声明在stdio.h中。预编译期间stdio.h的内容被包含到hello.c中,因此printf函数的声明也被包含到hello.c中,所以编译hello.c时才没有报错“找不到printf函数”。
printf函数存在于一个名为printf.o的单独的预编译好的二进制文件中,在链接步骤编译器将hello.o与printf.o合并在一起生成可执行程序hello或者hello.exe。
我靠,61KB,这么大!
有些编译器可能不会产生那么多中间文件,将预编译、编译和汇编合为一步生成.o文件。
#include
int main()
{
printf("hello,world\n");
return 0;
}
# 1 "main.c"
# 1 ""
# 1 ""
# 1 "main.c"
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 1 3
# 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 1 3
# 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 1 3
# 12 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 1 3
# 98 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 3
# 107 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h" 3
# 13 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_secapi.h" 1 3
# 14 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3
# 282 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 1 3
# 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 1 3
# 578 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_directx.h" 1 3
# 579 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_ddk.h" 1 3
# 580 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3
# 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 2 3
#pragma pack(push,_CRT_PACKING)
# 24 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3
# 24 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3
typedef __builtin_va_list __gnuc_va_list;
typedef __gnuc_va_list va_list;
# 103 "C:/MCU/mingw64/x86_64-w64-mingw32/include/vadefs.h" 3
#pragma pack(pop)
# 283 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 2 3
# 552 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw.h" 3
void __attribute__((__cdecl__)) __debugbreak(void);
extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) void __attribute__((__cdecl__)) __debugbreak(void)
{
__asm__ __volatile__("int {$}3":);
}
const char *__mingw_get_crt_info (void);
# 11 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 2 3
#pragma pack(push,_CRT_PACKING)
# 35 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
__extension__ typedef unsigned long long size_t;
# 45 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
__extension__ typedef long long ssize_t;
typedef size_t rsize_t;
# 62 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
__extension__ typedef long long intptr_t;
# 75 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
__extension__ typedef unsigned long long uintptr_t;
# 88 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
__extension__ typedef long long ptrdiff_t;
# 98 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
typedef unsigned short wchar_t;
typedef unsigned short wint_t;
typedef unsigned short wctype_t;
typedef int errno_t;
typedef long __time32_t;
__extension__ typedef long long __time64_t;
# 138 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
typedef __time64_t time_t;
# 422 "C:/MCU/mingw64/x86_64-w64-mingw32/include/crtdefs.h" 3
struct threadlocaleinfostruct;
struct threadmbcinfostruct;
typedef struct threadlocaleinfostruct *pthreadlocinfo;
typedef struct threadmbcinfostruct *pthreadmbcinfo;
struct __lc_time_data;
typedef struct localeinfo_struct {
pthreadlocinfo locinfo;
pthreadmbcinfo mbcinfo;
} _locale_tstruct,*_locale_t;
typedef struct tagLC_ID {
unsigned short wLanguage;
unsigned short wCountry;
unsigned short wCodePage;
} LC_ID,*LPLC_ID;
typedef struct threadlocaleinfostruct {
int refcount;
unsigned int lc_codepage;
unsigned int lc_collate_cp;
unsigned long lc_handle[6];
LC_ID lc_id[6];
struct {
char *locale;
wchar_t *wlocale;
int *refcount;
int *wrefcount;
} lc_category[6];
int lc_clike;
int mb_cur_max;
int *lconv_intl_refcount;
int *lconv_num_refcount;
int *lconv_mon_refcount;
struct lconv *lconv;
int *ctype1_refcount;
unsigned short *ctype1;
const unsigned short *pctype;
const unsigned char *pclmap;
const unsigned char *pcumap;
struct __lc_time_data *lc_time_curr;
} threadlocinfo;
#pragma pack(pop)
# 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_print_push.h" 1 3
# 12 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
#pragma pack(push,_CRT_PACKING)
# 26 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
# 80 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h" 1 3
typedef long _off_t;
typedef long off32_t;
__extension__ typedef long long _off64_t;
__extension__ typedef long long off64_t;
# 26 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h" 3
typedef off32_t off_t;
# 81 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) __acrt_iob_func(unsigned index);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) __iob_func(void);
# 104 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__extension__ typedef long long fpos_t;
# 162 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
extern
__attribute__((__format__ (gnu_scanf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...);
extern
__attribute__((__format__ (gnu_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp);
extern
__attribute__((__format__ (gnu_scanf, 1, 2))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_scanf(const char * __restrict__ _Format,...);
extern
__attribute__((__format__ (gnu_scanf, 1, 0))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_vscanf(const char * __restrict__ Format, va_list argp);
extern
__attribute__((__format__ (gnu_scanf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...);
extern
__attribute__((__format__ (gnu_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vfscanf (FILE * __restrict__ fp, const char * __restrict__ Format,va_list argp);
extern
__attribute__((__format__ (gnu_printf, 3, 0))) __attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __mingw_vsnprintf(char * __restrict__ _DstBuf,size_t _MaxCount,const char * __restrict__ _Format,
va_list _ArgList);
extern
__attribute__((__format__ (gnu_printf, 3, 4))) __attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __mingw_snprintf(char * __restrict__ s, size_t n, const char * __restrict__ format, ...);
extern
__attribute__((__format__ (gnu_printf, 1, 2))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_printf(const char * __restrict__ , ... ) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 1, 0))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_vprintf (const char * __restrict__ , va_list) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_fprintf (FILE * __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vfprintf (FILE * __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_sprintf (char * __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vsprintf (char * __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 3))) __attribute__((nonnull (1,2)))
int __attribute__((__cdecl__)) __mingw_asprintf(char ** __restrict__ , const char * __restrict__ , ...) __attribute__ ((__nothrow__));
extern
__attribute__((__format__ (gnu_printf, 2, 0))) __attribute__((nonnull (1,2)))
int __attribute__((__cdecl__)) __mingw_vasprintf(char ** __restrict__ , const char * __restrict__ , va_list) __attribute__ ((__nothrow__));
# 506 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__((__format__ (ms_printf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) fprintf(FILE * __restrict__ _File,const char * __restrict__ _Format,...);
__attribute__((__format__ (ms_printf, 1, 2))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) printf(const char * __restrict__ _Format,...);
__attribute__((__format__ (ms_printf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) sprintf(char * __restrict__ _Dest,const char * __restrict__ _Format,...) ;
__attribute__((__format__ (ms_printf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) vfprintf(FILE * __restrict__ _File,const char * __restrict__ _Format,va_list _ArgList);
__attribute__((__format__ (ms_printf, 1, 0))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) vprintf(const char * __restrict__ _Format,va_list _ArgList);
__attribute__((__format__ (ms_printf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) vsprintf(char * __restrict__ _Dest,const char * __restrict__ _Format,va_list _Args) ;
__attribute__((__format__ (ms_scanf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...) ;
__attribute__((__format__ (ms_scanf, 1, 2))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) scanf(const char * __restrict__ _Format,...) ;
__attribute__((__format__ (ms_scanf, 2, 3))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...) ;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
__attribute__((__format__ (ms_scanf, 1, 0))) __attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __ms_vscanf(const char * __restrict__ Format, va_list argp);
__attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __ms_vfscanf (FILE * __restrict__ fp, const char * __restrict__ Format,va_list argp);
__attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __ms_vsscanf (const char * __restrict__ _Str,const char * __restrict__ Format,va_list argp);
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int vfscanf (FILE *__stream, const char *__format, __builtin_va_list __local_argv)
{
return __ms_vfscanf (__stream, __format, __local_argv);
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__((__format__ (ms_scanf, 2, 0))) __attribute__ ((__nonnull__ (2)))
int vsscanf (const char * __restrict__ __source, const char * __restrict__ __format, __builtin_va_list __local_argv)
{
return __ms_vsscanf( __source, __format, __local_argv );
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__((__format__ (ms_scanf, 1, 0))) __attribute__ ((__nonnull__ (1)))
int vscanf(const char *__format, __builtin_va_list __local_argv)
{
return __ms_vscanf (__format, __local_argv);
}
#pragma GCC diagnostic pop
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _filbuf(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _flsbuf(int _Ch,FILE *_File);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _fsopen(const char *_Filename,const char *_Mode,int _ShFlag);
void __attribute__((__cdecl__)) clearerr(FILE *_File);
int __attribute__((__cdecl__)) fclose(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fcloseall(void);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _fdopen(int _FileHandle,const char *_Mode);
int __attribute__((__cdecl__)) feof(FILE *_File);
int __attribute__((__cdecl__)) ferror(FILE *_File);
int __attribute__((__cdecl__)) fflush(FILE *_File);
int __attribute__((__cdecl__)) fgetc(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fgetchar(void);
int __attribute__((__cdecl__)) fgetpos(FILE * __restrict__ _File ,fpos_t * __restrict__ _Pos);
int __attribute__((__cdecl__)) fgetpos64(FILE * __restrict__ _File ,fpos_t * __restrict__ _Pos);
char *__attribute__((__cdecl__)) fgets(char * __restrict__ _Buf,int _MaxCount,FILE * __restrict__ _File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fileno(FILE *_File);
__attribute__ ((__dllimport__)) char *__attribute__((__cdecl__)) _tempnam(const char *_DirName,const char *_FilePrefix);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _flushall(void);
FILE *__attribute__((__cdecl__)) fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) ;
FILE *fopen64(const char * __restrict__ filename,const char * __restrict__ mode);
int __attribute__((__cdecl__)) fputc(int _Ch,FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fputchar(int _Ch);
int __attribute__((__cdecl__)) fputs(const char * __restrict__ _Str,FILE * __restrict__ _File);
size_t __attribute__((__cdecl__)) fread(void * __restrict__ _DstBuf,size_t _ElementSize,size_t _Count,FILE * __restrict__ _File);
FILE *__attribute__((__cdecl__)) freopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode,FILE * __restrict__ _File) ;
int __attribute__((__cdecl__)) fsetpos(FILE *_File,const fpos_t *_Pos);
int __attribute__((__cdecl__)) fsetpos64(FILE *_File,const fpos_t *_Pos);
int __attribute__((__cdecl__)) fseek(FILE *_File,long _Offset,int _Origin);
long __attribute__((__cdecl__)) ftell(FILE *_File);
# 631 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__extension__ int __attribute__((__cdecl__)) _fseeki64(FILE *_File,long long _Offset,int _Origin);
__extension__ long long __attribute__((__cdecl__)) _ftelli64(FILE *_File);
int fseeko64(FILE* stream, _off64_t offset, int whence);
int fseeko(FILE* stream, _off_t offset, int whence);
_off_t ftello(FILE * stream);
_off64_t ftello64(FILE * stream);
# 654 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
size_t __attribute__((__cdecl__)) fwrite(const void * __restrict__ _Str,size_t _Size,size_t _Count,FILE * __restrict__ _File);
int __attribute__((__cdecl__)) getc(FILE *_File);
int __attribute__((__cdecl__)) getchar(void);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _getmaxstdio(void);
char *__attribute__((__cdecl__)) gets(char *_Buffer) ;
int __attribute__((__cdecl__)) _getw(FILE *_File);
void __attribute__((__cdecl__)) perror(const char *_ErrMsg);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _pclose(FILE *_File);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _popen(const char *_Command,const char *_Mode);
int __attribute__((__cdecl__)) putc(int _Ch,FILE *_File);
int __attribute__((__cdecl__)) putchar(int _Ch);
int __attribute__((__cdecl__)) puts(const char *_Str);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _putw(int _Word,FILE *_File);
int __attribute__((__cdecl__)) remove(const char *_Filename);
int __attribute__((__cdecl__)) rename(const char *_OldFilename,const char *_NewFilename);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _unlink(const char *_Filename);
int __attribute__((__cdecl__)) unlink(const char *_Filename) ;
void __attribute__((__cdecl__)) rewind(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _rmtmp(void);
void __attribute__((__cdecl__)) setbuf(FILE * __restrict__ _File,char * __restrict__ _Buffer) ;
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _setmaxstdio(int _Max);
__attribute__ ((__dllimport__)) unsigned int __attribute__((__cdecl__)) _set_output_format(unsigned int _Format);
__attribute__ ((__dllimport__)) unsigned int __attribute__((__cdecl__)) _get_output_format(void);
int __attribute__((__cdecl__)) setvbuf(FILE * __restrict__ _File,char * __restrict__ _Buf,int _Mode,size_t _Size);
# 712 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf(const char * __restrict__ _Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...) ;
FILE *__attribute__((__cdecl__)) tmpfile(void) ;
char *__attribute__((__cdecl__)) tmpnam(char *_Buffer);
int __attribute__((__cdecl__)) ungetc(int _Ch,FILE *_File);
# 734 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3)))
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,...) ;
__attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3)))
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,va_list _Args) ;
# 761 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
__attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __ms_vsnprintf(char * __restrict__ d,size_t n,const char * __restrict__ format,va_list arg)
;
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__((__format__ (ms_printf, 3, 0))) __attribute__ ((__nonnull__ (3)))
int vsnprintf (char * __restrict__ __stream, size_t __n, const char * __restrict__ __format, va_list __local_argv)
{
return __ms_vsnprintf (__stream, __n, __format, __local_argv);
}
__attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __ms_snprintf(char * __restrict__ s, size_t n, const char * __restrict__ format, ...);
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__((__format__ (ms_printf, 3, 4))) __attribute__ ((__nonnull__ (3)))
int snprintf (char * __restrict__ __stream, size_t __n, const char * __restrict__ __format, ...)
{
int __retval;
__builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
__retval = __ms_vsnprintf (__stream, __n, __format, __local_argv);
__builtin_va_end( __local_argv );
return __retval;
}
#pragma GCC diagnostic pop
# 811 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf(const char * __restrict__ _Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _set_printf_count_output(int _Value);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _get_printf_count_output(void);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vswscanf (const wchar_t * __restrict__ _Str,const wchar_t * __restrict__ Format,va_list argp);
__attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_wscanf(const wchar_t * __restrict__ _Format,...);
__attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_vwscanf(const wchar_t * __restrict__ Format, va_list argp);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vfwscanf (FILE * __restrict__ fp, const wchar_t * __restrict__ Format,va_list argp);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_wprintf(const wchar_t * __restrict__ _Format,...);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
__attribute__ ((__nonnull__ (1)))
int __attribute__((__cdecl__)) __mingw_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
__attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
__attribute__ ((__nonnull__ (3)))
int __attribute__((__cdecl__)) __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
__attribute__ ((__nonnull__ (2)))
int __attribute__((__cdecl__)) __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
# 1061 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
int __attribute__((__cdecl__)) fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) ;
int __attribute__((__cdecl__)) swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...) ;
int __attribute__((__cdecl__)) wscanf(const wchar_t * __restrict__ _Format,...) ;
int __attribute__((__cdecl__)) __ms_vwscanf (const wchar_t * __restrict__ , va_list);
int __attribute__((__cdecl__)) __ms_vfwscanf (FILE * __restrict__ ,const wchar_t * __restrict__ ,va_list);
int __attribute__((__cdecl__)) __ms_vswscanf (const wchar_t * __restrict__ ,const wchar_t * __restrict__ ,va_list);
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__ ((__nonnull__ (2)))
int vfwscanf (FILE *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
{
return __ms_vfwscanf (__stream, __format, __local_argv);
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__ ((__nonnull__ (2)))
int vswscanf (const wchar_t * __restrict__ __source, const wchar_t * __restrict__ __format, __builtin_va_list __local_argv)
{
return __ms_vswscanf( __source, __format, __local_argv );
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__ ((__nonnull__ (1)))
int vwscanf(const wchar_t *__format, __builtin_va_list __local_argv)
{
return __ms_vwscanf (__format, __local_argv);
}
int __attribute__((__cdecl__)) fwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...);
int __attribute__((__cdecl__)) wprintf(const wchar_t * __restrict__ _Format,...);
int __attribute__((__cdecl__)) vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
int __attribute__((__cdecl__)) vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
# 1105 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfsopen(const wchar_t *_Filename,const wchar_t *_Mode,int _ShFlag);
wint_t __attribute__((__cdecl__)) fgetwc(FILE *_File);
__attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fgetwchar(void);
wint_t __attribute__((__cdecl__)) fputwc(wchar_t _Ch,FILE *_File);
__attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fputwchar(wchar_t _Ch);
wint_t __attribute__((__cdecl__)) getwc(FILE *_File);
wint_t __attribute__((__cdecl__)) getwchar(void);
wint_t __attribute__((__cdecl__)) putwc(wchar_t _Ch,FILE *_File);
wint_t __attribute__((__cdecl__)) putwchar(wchar_t _Ch);
wint_t __attribute__((__cdecl__)) ungetwc(wint_t _Ch,FILE *_File);
wchar_t *__attribute__((__cdecl__)) fgetws(wchar_t * __restrict__ _Dst,int _SizeInWords,FILE * __restrict__ _File);
int __attribute__((__cdecl__)) fputws(const wchar_t * __restrict__ _Str,FILE * __restrict__ _File);
__attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _getws(wchar_t *_String) ;
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _putws(const wchar_t *_Str);
# 1183 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf(const wchar_t * __restrict__ _Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_c(wchar_t * __restrict__ _DstBuf,size_t _SizeInWords,const wchar_t * __restrict__ _Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...) ;
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args) ;
int __attribute__((__cdecl__)) __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
int __attribute__((__cdecl__)) __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
{
int r;
va_list argp;
__builtin_va_start (argp, format);
r = _vsnwprintf (s, n, format, argp);
__builtin_va_end (argp);
return r;
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
int __attribute__((__cdecl__)) vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
{
return _vsnwprintf(s,n,format,arg);
}
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args);
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/swprintf.inl" 1 3
# 25 "C:/MCU/mingw64/x86_64-w64-mingw32/include/swprintf.inl" 3
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__ ((__nonnull__ (3)))
int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv)
{
return vsnwprintf( __stream, __count, __format, __local_argv );
}
static __attribute__ ((__unused__)) __inline__ __attribute__((__cdecl__))
__attribute__ ((__nonnull__ (3)))
int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...)
{
int __retval;
__builtin_va_list __local_argv;
__builtin_va_start( __local_argv, __format );
__retval = vswprintf( __stream, __count, __format, __local_argv );
__builtin_va_end( __local_argv );
return __retval;
}
# 1224 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
# 1233 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfdopen(int _FileHandle ,const wchar_t *_Mode);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t *__restrict__ _Mode) ;
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wfreopen(const wchar_t * __restrict__ _Filename,const wchar_t * __restrict__ _Mode,FILE * __restrict__ _OldFile) ;
__attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _wperror(const wchar_t *_ErrMsg);
__attribute__ ((__dllimport__)) FILE *__attribute__((__cdecl__)) _wpopen(const wchar_t *_Command,const wchar_t *_Mode);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wremove(const wchar_t *_Filename);
__attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _wtmpnam(wchar_t *_Buffer);
__attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fgetwc_nolock(FILE *_File);
__attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _fputwc_nolock(wchar_t _Ch,FILE *_File);
__attribute__ ((__dllimport__)) wint_t __attribute__((__cdecl__)) _ungetwc_nolock(wint_t _Ch,FILE *_File);
# 1290 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _lock_file(FILE *_File);
__attribute__ ((__dllimport__)) void __attribute__((__cdecl__)) _unlock_file(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fclose_nolock(FILE *_File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fflush_nolock(FILE *_File);
__attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fread_nolock(void * __restrict__ _DstBuf,size_t _ElementSize,size_t _Count,FILE * __restrict__ _File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fseek_nolock(FILE *_File,long _Offset,int _Origin);
__attribute__ ((__dllimport__)) long __attribute__((__cdecl__)) _ftell_nolock(FILE *_File);
__extension__ __attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fseeki64_nolock(FILE *_File,long long _Offset,int _Origin);
__extension__ __attribute__ ((__dllimport__)) long long __attribute__((__cdecl__)) _ftelli64_nolock(FILE *_File);
__attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fwrite_nolock(const void * __restrict__ _DstBuf,size_t _Size,size_t _Count,FILE * __restrict__ _File);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _ungetc_nolock(int _Ch,FILE *_File);
char *__attribute__((__cdecl__)) tempnam(const char *_Directory,const char *_FilePrefix) ;
int __attribute__((__cdecl__)) fcloseall(void) ;
FILE *__attribute__((__cdecl__)) fdopen(int _FileHandle,const char *_Format) ;
int __attribute__((__cdecl__)) fgetchar(void) ;
int __attribute__((__cdecl__)) fileno(FILE *_File) ;
int __attribute__((__cdecl__)) flushall(void) ;
int __attribute__((__cdecl__)) fputchar(int _Ch) ;
int __attribute__((__cdecl__)) getw(FILE *_File) ;
int __attribute__((__cdecl__)) putw(int _Ch,FILE *_File) ;
int __attribute__((__cdecl__)) rmtmp(void) ;
# 1332 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
int __attribute__((__cdecl__)) __mingw_str_wide_utf8 (const wchar_t * const wptr, char **mbptr, size_t * buflen);
# 1346 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
int __attribute__((__cdecl__)) __mingw_str_utf8_wide (const char *const mbptr, wchar_t ** wptr, size_t * buflen);
# 1355 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
void __attribute__((__cdecl__)) __mingw_str_free(void *ptr);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnl(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnle(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnlp(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnlpe(int _Mode,const wchar_t *_Filename,const wchar_t *_ArgList,...);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnv(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnve(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnvp(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _wspawnvpe(int _Mode,const wchar_t *_Filename,const wchar_t *const *_ArgList,const wchar_t *const *_Env);
# 1385 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 3
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnv(int _Mode,const char *_Filename,const char *const *_ArgList);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnve(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnvp(int _Mode,const char *_Filename,const char *const *_ArgList);
__attribute__ ((__dllimport__)) intptr_t __attribute__((__cdecl__)) _spawnvpe(int _Mode,const char *_Filename,const char *const *_ArgList,const char *const *_Env);
#pragma pack(pop)
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 1 3
# 9 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 1 3
# 10 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 2 3
# 28 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) clearerr_s(FILE *_File);
size_t __attribute__((__cdecl__)) fread_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File);
# 471 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3
int __attribute__((__cdecl__)) fprintf_s(FILE *_File,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fscanf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
int __attribute__((__cdecl__)) printf_s(const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scanf_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scanf_s_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_c(char *_DstBuf,size_t _MaxCount,const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fscanf_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sscanf_l(const char *_Src,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sscanf_s_l(const char *_Src,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) sscanf_s(const char *_Src,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_s(const char *_Src,size_t _MaxCount,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snscanf_s_l(const char *_Src,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
int __attribute__((__cdecl__)) vfprintf_s(FILE *_File,const char *_Format,va_list _ArgList);
int __attribute__((__cdecl__)) vprintf_s(const char *_Format,va_list _ArgList);
int __attribute__((__cdecl__)) vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,va_list _ArgList);
__attribute__((dllimport)) int __attribute__((__cdecl__)) vsprintf_s(char *_DstBuf,size_t _Size,const char *_Format,va_list _ArgList);
__attribute__((dllimport)) int __attribute__((__cdecl__)) sprintf_s(char *_DstBuf,size_t _DstSize,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_s(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_p(FILE *_File,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_p(const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_p(FILE *_File,const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_p(const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_p(char *_Dst,size_t _MaxCount,const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_p(const char *_Format,...);
__attribute__((dllimport)) int __attribute__((__cdecl__)) _vscprintf_p(const char *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_p_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_p_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_l(char *_DstBuf,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_l(char *_DstBuf,const char *_Format,_locale_t,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_p_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scprintf_p_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscprintf_p_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _printf_s_l(const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vprintf_s_l(const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfprintf_s_l(FILE *_File,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _sprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsprintf_s_l(char *_DstBuf,size_t _DstSize,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_s_l(char *_DstBuf,size_t _DstSize,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_l(char *_DstBuf,size_t _MaxCount,const char *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnprintf_c_l(char *_DstBuf,size_t _MaxCount,const char *,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) fopen_s(FILE **_File,const char *_Filename,const char *_Mode);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) freopen_s(FILE** _File, const char *_Filename, const char *_Mode, FILE *_Stream);
__attribute__ ((__dllimport__)) char* __attribute__((__cdecl__)) gets_s(char*,rsize_t);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) tmpnam_s(char*,rsize_t);
__attribute__ ((__dllimport__)) wchar_t *__attribute__((__cdecl__)) _getws_s(wchar_t *_Str,size_t _SizeInWords);
# 739 "C:/MCU/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h" 3
int __attribute__((__cdecl__)) fwprintf_s(FILE *_File,const wchar_t *_Format,...);
int __attribute__((__cdecl__)) wprintf_s(const wchar_t *_Format,...);
int __attribute__((__cdecl__)) vfwprintf_s(FILE *_File,const wchar_t *_Format,va_list _ArgList);
int __attribute__((__cdecl__)) vwprintf_s(const wchar_t *_Format,va_list _ArgList);
int __attribute__((__cdecl__)) vswprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,va_list _ArgList);
int __attribute__((__cdecl__)) swprintf_s(wchar_t *_Dst,size_t _SizeInWords,const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_s(wchar_t *_DstBuf,size_t _DstSizeInWords,size_t _MaxCount,const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_s_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_s_l(wchar_t *_DstBuf,size_t _DstSize,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwscanf_s_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swscanf_s_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) swscanf_s(const wchar_t *_Src,const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_s(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_s_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wscanf_s_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wfopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wfreopen_s(FILE **_File,const wchar_t *_Filename,const wchar_t *_Mode,FILE *_OldFile);
__attribute__ ((__dllimport__)) errno_t __attribute__((__cdecl__)) _wtmpnam_s(wchar_t *_DstBuf,size_t _SizeInWords);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_p(FILE *_File,const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_p(const wchar_t *_Format,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_p(FILE *_File,const wchar_t *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_p(const wchar_t *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,...);
__attribute__((dllimport)) int __attribute__((__cdecl__)) _vswprintf_p(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_p(const wchar_t *_Format,...);
__attribute__((dllimport)) int __attribute__((__cdecl__)) _vscwprintf_p(const wchar_t *_Format,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vfwprintf_p_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_c_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vswprintf_p_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _scwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf_p_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vsnwprintf_l(wchar_t *_DstBuf,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) __swprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) __vswprintf_l(wchar_t *_Dest,const wchar_t *_Format,_locale_t _Plocinfo,va_list _Args);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _vscwprintf_l(const wchar_t *_Format,_locale_t _Locale,va_list _ArgList);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _fwscanf_l(FILE *_File,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _swscanf_l(const wchar_t *_Src,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _snwscanf_l(const wchar_t *_Src,size_t _MaxCount,const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) int __attribute__((__cdecl__)) _wscanf_l(const wchar_t *_Format,_locale_t _Locale,...);
__attribute__ ((__dllimport__)) size_t __attribute__((__cdecl__)) _fread_nolock_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File);
# 1398 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
# 1 "C:/MCU/mingw64/x86_64-w64-mingw32/include/_mingw_print_pop.h" 1 3
# 1400 "C:/MCU/mingw64/x86_64-w64-mingw32/include/stdio.h" 2 3
# 2 "main.c" 2
# 3 "main.c"
int main() {
printf("Hello, World!\n");
return 0;
}
.file "main.c"
.text
.def __main; .scl 2; .type 32; .endef
.section .rdata,"dr"
.LC0:
.ascii "Hello, World!\0"
.text
.globl main
.def main; .scl 2; .type 32; .endef
.seh_proc main
main:
pushq %rbp
.seh_pushreg %rbp
movq %rsp, %rbp
.seh_setframe %rbp, 0
subq $32, %rsp
.seh_stackalloc 32
.seh_endprologue
call __main
leaq .LC0(%rip), %rcx
call puts
movl $0, %eax
addq $32, %rsp
popq %rbp
ret
.seh_endproc
.ident "GCC: (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0"
.def puts; .scl 2; .type 32; .endef
没找到以二进制文本查看hello.o的办法。
下面是在vscode中使用插件打开的,以十六进制显示并自动生成了一下注解的hello.o文件的内容。
嗯…
咱也看不懂啥意思…
Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000: 64 86 07 00 00 00 00 00 00 02 00 00 14 00 00 00 d...............
00000010: 00 00 04 00 2E 74 65 78 74 00 00 00 00 00 00 00 .....text.......
00000020: 00 00 00 00 30 00 00 00 2C 01 00 00 C4 01 00 00 ....0...,...D...
00000030: 00 00 00 00 03 00 00 00 20 00 50 60 2E 64 61 74 ..........P`.dat
00000040: 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a...............
00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000060: 40 00 50 C0 2E 62 73 73 00 00 00 00 00 00 00 00 @.P@.bss........
00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000080: 00 00 00 00 00 00 00 00 80 00 50 C0 2E 72 64 61 ..........P@.rda
00000090: 74 61 00 00 00 00 00 00 00 00 00 00 10 00 00 00 ta..............
000000a0: 5C 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \...............
000000b0: 40 00 50 40 2E 78 64 61 74 61 00 00 00 00 00 00 @.P@.xdata......
000000c0: 00 00 00 00 0C 00 00 00 6C 01 00 00 00 00 00 00 ........l.......
000000d0: 00 00 00 00 00 00 00 00 40 00 30 40 2E 70 64 61 ........@.0@.pda
000000e0: 74 61 00 00 00 00 00 00 00 00 00 00 0C 00 00 00 ta..............
000000f0: 78 01 00 00 E2 01 00 00 00 00 00 00 03 00 00 00 x...b...........
00000100: 40 00 30 40 2F 34 00 00 00 00 00 00 00 00 00 00 @.0@/4..........
00000110: 00 00 00 00 40 00 00 00 84 01 00 00 00 00 00 00 ....@...........
00000120: 00 00 00 00 00 00 00 00 40 00 50 40 55 48 89 E5 ........@.P@UH.e
00000130: 48 83 EC 20 E8 00 00 00 00 48 8D 0D 00 00 00 00 H.l.h....H......
00000140: E8 00 00 00 00 B8 00 00 00 00 48 83 C4 20 5D C3 h....8....H.D.]C
00000150: 90 90 90 90 90 90 90 90 90 90 90 90 48 65 6C 6C ............Hell
00000160: 6F 2C 20 57 6F 72 6C 64 21 00 00 00 01 08 03 05 o,.World!.......
00000170: 08 32 04 03 01 50 00 00 00 00 00 00 24 00 00 00 .2...P......$...
00000180: 00 00 00 00 47 43 43 3A 20 28 78 38 36 5F 36 34 ....GCC:.(x86_64
00000190: 2D 70 6F 73 69 78 2D 73 65 68 2D 72 65 76 30 2C -posix-seh-rev0,
000001a0: 20 42 75 69 6C 74 20 62 79 20 4D 69 6E 47 57 2D .Built.by.MinGW-
000001b0: 57 36 34 20 70 72 6F 6A 65 63 74 29 20 38 2E 31 W64.project).8.1
000001c0: 2E 30 00 00 09 00 00 00 12 00 00 00 04 00 10 00 .0..............
000001d0: 00 00 0A 00 00 00 04 00 15 00 00 00 13 00 00 00 ................
000001e0: 04 00 00 00 00 00 04 00 00 00 03 00 04 00 00 00 ................
000001f0: 04 00 00 00 03 00 08 00 00 00 0C 00 00 00 03 00 ................
00000200: 2E 66 69 6C 65 00 00 00 00 00 00 00 FE FF 00 00 .file.......~...
00000210: 67 01 6D 61 69 6E 2E 63 00 00 00 00 00 00 00 00 g.main.c........
00000220: 00 00 00 00 6D 61 69 6E 00 00 00 00 00 00 00 00 ....main........
00000230: 01 00 20 00 02 01 00 00 00 00 00 00 00 00 00 00 ................
00000240: 00 00 00 00 00 00 00 00 2E 74 65 78 74 00 00 00 .........text...
00000250: 00 00 00 00 01 00 00 00 03 01 24 00 00 00 03 00 ..........$.....
00000260: 00 00 00 00 00 00 00 00 00 00 00 00 2E 64 61 74 .............dat
00000270: 61 00 00 00 00 00 00 00 02 00 00 00 03 01 00 00 a...............
00000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000290: 2E 62 73 73 00 00 00 00 00 00 00 00 03 00 00 00 .bss............
000002a0: 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000002b0: 00 00 00 00 2E 72 64 61 74 61 00 00 00 00 00 00 .....rdata......
000002c0: 04 00 00 00 03 01 0E 00 00 00 00 00 00 00 00 00 ................
000002d0: 00 00 00 00 00 00 00 00 2E 78 64 61 74 61 00 00 .........xdata..
000002e0: 00 00 00 00 05 00 00 00 03 01 0C 00 00 00 00 00 ................
000002f0: 00 00 00 00 00 00 00 00 00 00 00 00 2E 70 64 61 .............pda
00000300: 74 61 00 00 00 00 00 00 06 00 00 00 03 01 0C 00 ta..............
00000310: 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000320: 00 00 00 00 0F 00 00 00 00 00 00 00 07 00 00 00 ................
00000330: 03 01 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 ..?.............
00000340: 00 00 00 00 5F 5F 6D 61 69 6E 00 00 00 00 00 00 ....__main......
00000350: 00 00 20 00 02 00 70 75 74 73 00 00 00 00 00 00 ......puts......
00000360: 00 00 00 00 20 00 02 00 1A 00 00 00 2E 72 64 61 .............rda
00000370: 74 61 24 7A 7A 7A 00 2E 72 64 61 74 61 24 7A 7A ta$zzz..rdata$zz
00000380: 7A 00 z.
CPU输入端:是信号进入CPU的起点。物质上:CPU的组成中有这样一组这样门,门的输入端专门和外部连接,从外部获取信号(指令和数据)。
CPU输出端:是信号在CPU中传递的终点。物质上:CPU的组成中有这样一组这样门,门的输出端专门和外部连接,CPU运行的结果以电平信号写在该端口,被外界读取。 ↩︎
对CPU读写:要么写高电平,要么写低电平,端口只有这两种状态。 ↩︎
机器码:一组序列,序列中只包含0和1,能够直接被CPU使用。为什么只包含0和1?因为序列中的每个0和1都对应着一个输入端口的电平状态,1代表高电平,0代表低电平。
总结一下:端口拥有状态的数量,决定机器码包含多少种状态。传说中的量子/光子计算机每个光子拥有多个状态,量子计算机的机器码就就有可能包含3,4,5… ↩︎
仅个人学习笔记,肯定有些理解不到位的地方,读者见谅哈!真错了欢迎指正,一起学习一起进步,那种扯淡、吵架、秀优越的就别打字了… ↩︎