亚洲欧美第一页_禁久久精品乱码_粉嫩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 (;;)#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女区一区| 图片区小说区区亚洲影院| 日本高清免费不卡视频| 日本成人中文字幕在线视频| 日本一区二区三区免费乱视频| 欧美系列在线观看| 国产成人精品aa毛片| 五月激情综合网| 亚洲色图一区二区| 久久婷婷国产综合国色天香| 欧美视频一区二区| eeuss影院一区二区三区| 激情综合色丁香一区二区| 一区二区三区日韩精品视频| 国产日产欧美一区| 日韩一级大片在线观看| 色悠久久久久综合欧美99| 国产高清在线精品| 蜜臀精品一区二区三区在线观看| 亚洲一区二区不卡免费| 自拍av一区二区三区| 国产亚洲精品中文字幕| 精品美女一区二区| 91精品国产综合久久久蜜臀粉嫩| 色久优优欧美色久优优| k8久久久一区二区三区| 国产福利一区二区| 国产在线一区二区| 久久国产尿小便嘘嘘尿| 日韩国产欧美三级| 婷婷久久综合九色综合伊人色| 曰韩精品一区二区| 一级中文字幕一区二区| 亚洲精品水蜜桃| 国产精品欧美极品| 中文字幕在线观看不卡视频| 中文字幕成人在线观看| 日本一区二区三区四区在线视频| 国产调教视频一区| 国产精品素人一区二区| 国产精品免费看片| 国产精品乱子久久久久| 欧美国产国产综合| 国产精品乱人伦一区二区| 国产精品久久一级| 中文字幕一区二区在线播放 | 91精品国产综合久久久蜜臀图片| 欧美性xxxxxxxx| 欧美视频精品在线观看| 欧美精品99久久久**| 欧美高清一级片在线| 91精品国产综合久久久久久久久久| 欧美一区二区三区视频在线观看| 欧美一级夜夜爽| 精品粉嫩超白一线天av| 久久精品人人做人人综合| 亚洲国产精品激情在线观看| 中文字幕一区二区5566日韩| 亚洲午夜在线电影| 开心九九激情九九欧美日韩精美视频电影 | 欧美日韩国产综合草草| 91精品国产综合久久精品| 亚洲精品一区二区三区精华液| 国产午夜精品理论片a级大结局| 国产精品乱码妇女bbbb| 亚洲欧洲中文日韩久久av乱码| 亚洲一本大道在线| 久久国产欧美日韩精品| 国产成人一区在线| 日本韩国欧美三级| 日韩一区二区精品| 中文av一区二区| 亚洲一区二区三区四区在线| 久久99精品视频| caoporen国产精品视频| 欧美精品一卡二卡| 日本一区免费视频| 午夜伦欧美伦电影理论片| 国产精品综合一区二区| 色香蕉成人二区免费| 日韩女同互慰一区二区| 中文字幕av一区二区三区高| www.激情成人| 日韩视频在线你懂得| 亚洲欧洲在线观看av| 日本不卡中文字幕| 成人黄色免费短视频| 欧美一区中文字幕| 国产精品乱人伦中文| 奇米影视一区二区三区小说| av在线一区二区| 精品久久久久久久久久久久久久久 | 欧美日韩一区在线| 精品国产99国产精品| 亚洲一区二区三区四区不卡| 国产乱妇无码大片在线观看| 欧美日韩在线直播| 国产精品久久久久aaaa樱花| 美女视频一区二区| 91福利精品视频| 国产精品免费视频网站| 秋霞午夜av一区二区三区| 99精品偷自拍| 久久久久久日产精品| 午夜视频在线观看一区| 波多野结衣中文字幕一区二区三区 | 色综合久久中文综合久久牛| 日韩免费电影网站| 亚洲综合丝袜美腿| 成人免费av网站| 欧美成人一区二区三区| 午夜精品久久久久久久99水蜜桃| 成人丝袜18视频在线观看| 欧美大肚乱孕交hd孕妇| 亚洲一区在线视频| 99久久国产综合色|国产精品| 久久久久久久久久久电影| 美女免费视频一区二区| 欧美日韩不卡一区| 亚洲综合激情另类小说区| 成人午夜碰碰视频| 国产亚洲欧美日韩在线一区| 国产又粗又猛又爽又黄91精品| 欧美一区二区性放荡片| 亚洲一级二级三级| 91久久国产综合久久| 亚洲视频在线一区观看| 成人avav在线| 亚洲视频在线观看一区| 成人av网站免费观看| 国产网站一区二区三区| 国产一区二区三区免费观看 | 一区二区三区四区av| 91麻豆国产精品久久| 亚洲视频免费在线| 91亚洲国产成人精品一区二三| 中文字幕在线不卡国产视频| 99久久国产综合色|国产精品| 中文字幕亚洲综合久久菠萝蜜| 99久久精品国产毛片| 综合久久综合久久| 91看片淫黄大片一级| 亚洲激情六月丁香| 欧美色精品天天在线观看视频| 亚洲成人自拍偷拍| 91精品国产一区二区| 蜜臀久久久99精品久久久久久| 日韩精品一区二区三区视频播放| 六月丁香婷婷色狠狠久久| 精品第一国产综合精品aⅴ| 激情综合色综合久久综合| 国产亚洲短视频| 成人晚上爱看视频| 亚洲黄色性网站| 欧美丰满美乳xxx高潮www| 美女mm1313爽爽久久久蜜臀| 久久久精品免费观看| 成人app网站| 亚洲成a人v欧美综合天堂下载| 欧美大片在线观看一区| 国产91清纯白嫩初高中在线观看| 中文字幕日本不卡| 欧美日韩在线不卡| 国产在线精品一区二区三区不卡 | 免费在线观看视频一区| 久久夜色精品一区| 成人av在线资源| 香蕉久久夜色精品国产使用方法| 日韩欧美在线影院| 国产91精品精华液一区二区三区| 亚洲麻豆国产自偷在线| 777欧美精品| 成人国产一区二区三区精品| 亚洲午夜久久久久中文字幕久| 欧美精品一区二区三区在线播放| 不卡电影免费在线播放一区| 性做久久久久久| 国产免费成人在线视频| 欧美性猛交一区二区三区精品| 国产自产v一区二区三区c| 亚洲欧美一区二区不卡| 日韩欧美资源站| 色视频一区二区| 国产尤物一区二区在线| 亚洲综合一二区| 欧美激情一区二区三区蜜桃视频| 欧美日韩午夜在线| 福利一区福利二区| 日本网站在线观看一区二区三区 | 欧美精品一区二区在线观看| 色乱码一区二区三区88| 国产美女精品人人做人人爽| 亚洲国产综合91精品麻豆| 欧美极品美女视频| 91精品欧美久久久久久动漫| 99精品在线免费| 国产精一区二区三区| 免费成人你懂的| 亚洲午夜一二三区视频| 国产精品不卡一区|