亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? genlib.h

?? c語(yǔ)言開(kāi)發(fā)方面的經(jīng)典問(wèn)題,包括源代碼.c語(yǔ)言開(kāi)發(fā)所要注意的問(wèn)題,以及在嵌入式等各方面的應(yīng)用
?? H
字號(hào):
/* * File: genlib.h * Version: 1.0 * Last modified on Sun Jul 24 10:32:49 1994 by eroberts * ----------------------------------------------------- * This file contains several definitions that form the * core of a general-purpose ANSI C library developed by Eric * Roberts.  The goal of this library is to provide a basic * set of tools and conventions that increase the readability * of C programs, particularly as they are used in a teaching * environment. * * The basic definitions provided by genlib.h are: * *    1.  Declarations for several new "primitive" types *        (most importantly bool and string) that are *        used throughout the other libraries and *        applications as fundamental types. * *    2.  A new set of functions for memory allocation. * *    3.  A function for error handling. * *    4.  A repeat statement for loops with interior exits. */#ifndef _genlib_h#define _genlib_h#include <stdio.h>#include <stdlib.h>#include <stddef.h>/* Section 1 -- Define new "primitive" types *//* * Type: bool * ---------- * This type has two values, FALSE and TRUE, which are equal to 0 * and 1, respectively.  Most of the advantage of defining this type * comes from readability because it allows the programmer to * provide documentation that a variable will take on only one of * these two values.  Designing a portable representation, however, * is surprisingly hard, because many libraries and some compilers * define these names.  The definitions are usually compatible but * may still be flagged as errors. */#ifdef THINK_C   typedef int bool;#else#  ifdef TRUE#    ifndef bool#      define bool int#    endif#  else#    ifdef bool#      define FALSE 0#      define TRUE 1#    else       typedef enum {FALSE, TRUE} bool;#    endif#  endif#endif/* * Type: string * ------------ * The type string is identical to the type char *, which is * traditionally used in C programs.  The main point of defining a * new type is to improve program readability.   At the abstraction * levels at which the type string is used, it is usually not * important to take the string apart into its component characters. * Declaring it as a string emphasizes this atomicity. */typedef char *string;/* * Type: stream * ------------ * Like string, the stream type is used to provide additional * readability and is defined to be equivalent to FILE * * (which is particularly confusing because it violates * standard case conventions).  This type is not used in * the text but is preserved in genlib.h, so it is possible * to teach all of CS1 without exposing any pointers. */typedef FILE *stream;/* * Constant: UNDEFINED * ------------------- * Besides NULL, the only other constant of pointer type is * UNDEFINED, which is used in certain packages as a special * sentinel to indicate an undefined pointer value.  In many * such contexts, NULL is a legitimate data value and is * therefore inappropriate as a sentinel. */#define UNDEFINED ((void *) undefined_object)extern char undefined_object[];/* Section 2 -- Memory allocation *//* * General notes: * -------------- * These functions provide a common interface for memory * allocation.  All functions in the library that allocate * memory do so using GetBlock and FreeBlock.  Even though * the ANSI standard defines malloc and free for the same * purpose, using GetBlock and FreeBlock provides greater * compatibility with non-ANSI implementations, automatic * out-of-memory error detection, and the possibility of * substituting a garbage-collecting allocator. *//* * Function: GetBlock * Usage: ptr = (type) GetBlock(nbytes); * ------------------------------------- * GetBlock allocates a block of memory of the given size.  If * no memory is available, GetBlock generates an error. */void *GetBlock(size_t nbytes);/* * Function: FreeBlock * Usage: FreeBlock(ptr); * ---------------------- * FreeBlock frees the memory associated with ptr, which must * have been allocated using GetBlock, New, or NewArray. */void FreeBlock(void *ptr);/* * Macro: New * Usage: p = New(pointer-type); * ----------------------------- * The New pseudofunction allocates enough space to hold an * object of the type to which pointer-type points and returns * a pointer to the newly allocated pointer.  Note that * "New" is different from the "new" operator used in C++; * the former takes a pointer type and the latter takes the * target type. */#define New(type) ((type) GetBlock(sizeof *((type) NULL)))/* * Macro: NewArray * Usage: p = NewArray(n, element-type); * ------------------------------------- * NewArray allocates enough space to hold an array of n * values of the specified element type. */#define NewArray(n, type) ((type *) GetBlock((n) * sizeof (type)))/* Section 3 -- Basic error handling *//* * Function: Error * Usage: Error(msg, ...) * ---------------------- * Error generates an error string, expanding % constructions * appearing in the error message string just as printf does. * If an error handler exception has been introduced (see the * "exception.h" facility), the ErrorException exception is * raised with the expanded error string as argument.  If * there is no ErrorException defined, the program exits * with a status code indicating failure (as given by the * constant ErrorExitStatus).  The length of the error * message string following expansion must not exceed * MaxErrorMessage, and it is the client's responsibility * to ensure this. */void Error(string msg, ...);/* Section 4 -- The repeat pseudo-statement *//* * Statement form: repeat { ... } * ------------------------------ * Some instructors who have taught CS1 using this library * have found that using * *     while (TRUE) * * to initiate a loop with an interior exit is confusing to * students, particularly when it comes at the beginning of * the course.  This macro defines "repeat" as an infinite * loop construct for instructors who find it easier to * explain, although it is not used in the text.   Similar * macro definitions are common in industry. */#define repeat for (;;)/* Section 5 -- Special code for the Borland C compiler *//* * Three changes need to be incorporated into the definition of * genlib.h for optimal compatibility with the Borland C compiler. * First, if main does not return a value, the compiler generates * a warning, even though returning a value is not required by * most other compilers.  Second, in the standard confiuration, DOS  * programs exit immediately upon completion.  If the program * is being run directly from the compiler -- as is almost * certain the case during the testing phase -- the output * disappears before the student to read the screen.  Third, * there is no check to see that applications are compiled * with the proper memory-model options; if the wrong setting * is used, the program compiles and loads correctly, but then * crashes on the first library call. * * To fix these problems, genlib.h has been extended to test * for the Borland compiler and then redefines main in that case. * Moreover, unless the program is being assembled for Windows, * the new definition of main also waits for the user to hit the * return or enter key before exiting.  To disable this feature * in a DOS application program that uses genlib.h, include an * explicit exit(0) call in the definition of main. */#if defined( __BORLANDC__ )#  if !defined ( __LARGE__ )#    error The genlib.h library requires the LARGE memory model.#  endif#  if defined( _Windows )#    define main void main#  else#    define main() void Main(void); \            main() \            { \                Main(); \                (void) getchar(); \                return (0); \            } \            void Main(void)#  endif /* _Windows */#endif /* __BORLANDC__ */#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频mp4| 成人av在线影院| 粉嫩绯色av一区二区在线观看| 91蜜桃网址入口| 日韩精品一区二区三区在线播放| 日本一区二区三区久久久久久久久不 | 国产成人亚洲综合a∨婷婷 | 成人三级在线视频| 56国语精品自产拍在线观看| 国产精品美女久久福利网站| 日日嗨av一区二区三区四区| 成人影视亚洲图片在线| 99精品久久只有精品| 久久久久青草大香线综合精品| 亚瑟在线精品视频| 色偷偷成人一区二区三区91 | 欧美一区二区视频在线观看 | 亚洲国产视频直播| 99久久久无码国产精品| 国产视频一区不卡| 精品一区二区三区在线观看国产 | 91麻豆免费在线观看| 久久在线免费观看| 久久精品国产99国产| 欧美精品欧美精品系列| 一区二区三区四区亚洲| 91天堂素人约啪| ●精品国产综合乱码久久久久| 国产精品99久久久久久有的能看| 日韩免费视频一区| 激情亚洲综合在线| 精品国产一区二区三区久久久蜜月 | 91精品国产入口在线| 亚洲无人区一区| 一本色道久久综合亚洲精品按摩| 亚洲欧美成aⅴ人在线观看 | 国产一区二区不卡| 精品处破学生在线二十三| 久久av老司机精品网站导航| 欧美一区二区三区白人| 日本不卡高清视频| 欧美精品一区二区蜜臀亚洲| 国产乱码字幕精品高清av| 精品伦理精品一区| 国产成人午夜99999| 国产精品久久久一区麻豆最新章节| 成人高清av在线| 亚洲欧美激情插| 91精品国产91热久久久做人人| 欧美aⅴ一区二区三区视频| 欧美大片日本大片免费观看| 国产精品18久久久久久久久 | 欧美激情在线免费观看| av在线播放不卡| 亚洲精品免费在线播放| 欧洲一区在线电影| 日韩福利电影在线观看| 欧美v亚洲v综合ⅴ国产v| 国产一区二区伦理| 亚洲视频在线一区| 777午夜精品视频在线播放| 免费视频最近日韩| 中文字幕中文字幕一区二区| 一本色道亚洲精品aⅴ| 美女尤物国产一区| 中文字幕亚洲一区二区av在线| 欧美色涩在线第一页| 国产美女视频91| 亚洲精品日韩综合观看成人91| 欧美一级黄色大片| 波多野结衣的一区二区三区| 日韩二区三区四区| 中文字幕的久久| 欧美一区二区三区视频免费播放| 国产精品1024久久| 日韩一区精品视频| 最新日韩av在线| 51精品视频一区二区三区| 成人免费视频app| 看片的网站亚洲| 亚洲影院久久精品| 久久精品欧美一区二区三区不卡 | 日本不卡123| 亚洲欧洲美洲综合色网| 精品久久久久久久久久久院品网 | 日韩久久免费av| av不卡免费电影| 精品一区二区综合| 亚洲午夜一区二区| 国产精品另类一区| 精品国产不卡一区二区三区| 欧美性xxxxxx少妇| 97精品久久久午夜一区二区三区| 久久99久国产精品黄毛片色诱| 亚洲综合在线五月| 中文字幕一区二区三| 久久久精品国产99久久精品芒果| 欧美蜜桃一区二区三区| 97se亚洲国产综合在线| 国产成人综合在线观看| 激情五月婷婷综合| 久久成人免费日本黄色| 婷婷夜色潮精品综合在线| 夜夜精品视频一区二区 | av日韩在线网站| 韩国成人在线视频| 久久国产三级精品| 日韩av不卡在线观看| 亚洲综合一二区| 亚洲在线中文字幕| 亚洲一区二区av在线| 一区二区三区在线视频观看58 | 99精品视频中文字幕| 国产剧情av麻豆香蕉精品| 九九国产精品视频| 天天射综合影视| 视频在线观看一区| 日韩av成人高清| 精品亚洲porn| 国产成人福利片| 国产高清精品网站| 成人手机电影网| 成人午夜电影小说| 色呦呦一区二区三区| 一本色道久久综合精品竹菊| 色偷偷久久一区二区三区| 色综合久久综合网欧美综合网| 91麻豆高清视频| 欧美美女直播网站| 91精品国产aⅴ一区二区| 精品久久久久久久久久久院品网 | 亚洲妇熟xx妇色黄| 天天综合色天天综合色h| 麻豆91免费看| 高清国产一区二区三区| 99久久99精品久久久久久| 在线观看亚洲一区| 欧美日本在线看| 久久久久久一二三区| 国产精品免费久久久久| 一区二区三区免费看视频| 午夜久久久久久久久| 国产美女精品在线| 色噜噜狠狠一区二区三区果冻| 4438x成人网最大色成网站| 精品国产乱码久久久久久久久| 欧美激情一区在线观看| 一区二区三区不卡视频| 狠狠色丁香九九婷婷综合五月| 成人免费视频一区| 欧美精选在线播放| 国产亚洲一区字幕| 香蕉乱码成人久久天堂爱免费| 国产自产高清不卡| 欧美综合天天夜夜久久| 日韩精品中文字幕在线一区| 国产精品高清亚洲| 麻豆精品国产传媒mv男同| 成人激情图片网| 日韩午夜电影在线观看| 中文字幕一区二区三区视频 | 午夜久久久影院| 成人18精品视频| 日韩欧美高清dvd碟片| 亚洲欧美一区二区三区极速播放 | 亚洲欧美国产毛片在线| 精品在线播放免费| 欧美怡红院视频| 久久久久久久久久久久久女国产乱| 一区二区欧美在线观看| 国产福利一区二区| 日韩欧美一区二区久久婷婷| 亚洲三级免费观看| 国产在线精品免费| 欧美一卡2卡三卡4卡5免费| 亚洲猫色日本管| 国产·精品毛片| 精品人在线二区三区| 日日夜夜精品免费视频| 91久久国产综合久久| 日本一区二区电影| 国产精品一区二区在线看| 欧美一个色资源| 亚洲成人精品一区二区| 色婷婷综合久久久久中文 | 在线观看日韩电影| 国产午夜精品一区二区三区视频| 日本欧美一区二区三区乱码| 91成人免费在线| 一区二区三区日韩精品| 99久久免费精品| 亚洲色图20p| 91亚洲精品乱码久久久久久蜜桃| 国产欧美一区二区三区网站| 国产伦理精品不卡| 精品久久久久久久久久久久包黑料 | 亚洲一区二区在线免费看| k8久久久一区二区三区| 欧美激情综合五月色丁香小说| 国产经典欧美精品|