?? stdio.h
字號:
/* Optimizing macros and inline functions for stdio functions. Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */#ifndef _STDIO_H# error "Never include <bits/stdio.h> directly; use <stdio.h> instead."#endif#ifdef __cplusplus# define __STDIO_INLINE inline#else# define __STDIO_INLINE extern __inline#endif#ifdef __USE_EXTERN_INLINES/* Write formatted output to stdout from argument list ARG. */__STDIO_INLINE intvprintf (__const char *__restrict __fmt, _G_va_list __arg){ return vfprintf (stdout, __fmt, __arg);}/* Read a character from stdin. */__STDIO_INLINE intgetchar (void){ return _IO_getc (stdin);}# if defined __USE_POSIX || defined __USE_MISC/* This is defined in POSIX.1:1996. */__STDIO_INLINE intgetc_unlocked (FILE *__fp){ return _IO_getc_unlocked (__fp);}/* This is defined in POSIX.1:1996. */__STDIO_INLINE intgetchar_unlocked (void){ return _IO_getc_unlocked (stdin);}# endif /* POSIX || misc *//* Write a character to stdout. */__STDIO_INLINE intputchar (int __c){ return _IO_putc (__c, stdout);}# ifdef __USE_MISC/* Faster version when locking is not necessary. */__STDIO_INLINE intfputc_unlocked (int __c, FILE *__stream){ return _IO_putc_unlocked (__c, __stream);}# endif /* misc */# if defined __USE_POSIX || defined __USE_MISC/* This is defined in POSIX.1:1996. */__STDIO_INLINE intputc_unlocked (int __c, FILE *__stream){ return _IO_putc_unlocked (__c, __stream);}/* This is defined in POSIX.1:1996. */__STDIO_INLINE intputchar_unlocked (int __c){ return _IO_putc_unlocked (__c, stdout);}# endif /* POSIX || misc */# ifdef __USE_GNU/* Like `getdelim', but reads up to a newline. */__STDIO_INLINE _IO_ssize_tgetline (char **__lineptr, size_t *__n, FILE *__stream){ return __getdelim (__lineptr, __n, '\n', __stream);}# endif /* GNU */# ifdef __USE_MISC/* Faster versions when locking is not required. */__STDIO_INLINE int__NTH (feof_unlocked (FILE *__stream)){ return _IO_feof_unlocked (__stream);}/* Faster versions when locking is not required. */__STDIO_INLINE int__NTH (ferror_unlocked (FILE *__stream)){ return _IO_ferror_unlocked (__stream);}# endif /* misc */#endif /* Use extern inlines. */#if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__/* Perform some simple optimizations. */# define fread_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ char *__ptr = (char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ { \ int __c = _IO_getc_unlocked (__stream); \ if (__c == EOF) \ break; \ *__ptr++ = __c; \ } \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fread_unlocked (ptr, size, n, stream))))# define fwrite_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ const char *__ptr = (const char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) \ break; \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fwrite_unlocked (ptr, size, n, stream))))#endif/* Define helper macro. */#undef __STDIO_INLINE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -