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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? standards.texi

?? 基于4個mips核的noc設計
?? TEXI
?? 第 1 頁 / 共 5 頁
字號:
\input texinfo @c -*-texinfo-*-@c %**start of header@setfilename standards.info@settitle GNU Coding Standards@c This date is automagically updated when you save this file:@set lastupdate March 13, 1998@c %**end of header@ifinfo@formatSTART-INFO-DIR-ENTRY* Standards: (standards).        GNU coding standards.END-INFO-DIR-ENTRY@end format@end ifinfo@c @setchapternewpage odd@setchapternewpage off@c This is used by a cross ref in make-stds.texi@set CODESTD  1@iftex@set CHAPTER chapter@end iftex@ifinfo@set CHAPTER node@end ifinfo@ifinfoGNU Coding StandardsCopyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.Permission is granted to make and distribute verbatim copies ofthis manual provided the copyright notice and this permission noticeare preserved on all copies.@ignorePermission is granted to process this file through TeX and print theresults, provided the printed document carries copying permissionnotice identical to this one except for the removal of this paragraph(this paragraph not being relevant to the printed manual).@end ignorePermission is granted to copy and distribute modified versions of thismanual under the conditions for verbatim copying, provided that the entireresulting derived work is distributed under the terms of a permissionnotice identical to this one.Permission is granted to copy and distribute translations of this manualinto another language, under the above conditions for modified versions,except that this permission notice may be stated in a translation approvedby the Free Software Foundation.@end ifinfo@titlepage@title GNU Coding Standards@author Richard Stallman@author last updated @value{lastupdate}@page@vskip 0pt plus 1filllCopyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.Permission is granted to make and distribute verbatim copies ofthis manual provided the copyright notice and this permission noticeare preserved on all copies.Permission is granted to copy and distribute modified versions of thismanual under the conditions for verbatim copying, provided that the entireresulting derived work is distributed under the terms of a permissionnotice identical to this one.Permission is granted to copy and distribute translations of this manualinto another language, under the above conditions for modified versions,except that this permission notice may be stated in a translation approvedby the Free Software Foundation.@end titlepage@ifinfo@node Top, Preface, (dir), (dir)@top VersionLast updated @value{lastupdate}.@end ifinfo@menu* Preface::                     About the GNU Coding Standards* Intellectual Property::       Keeping Free Software Free* Design Advice::               General Program Design* Program Behavior::            Program Behavior for All Programs* Writing C::                   Making The Best Use of C* Documentation::               Documenting Programs* Managing Releases::           The Release Process@end menu@node Preface@chapter About the GNU Coding StandardsThe GNU Coding Standards were written by Richard Stallman and other GNUProject volunteers.  Their purpose is to make the GNU system clean,consistent, and easy to install.  This document can also be read as aguide to writing portable, robust and reliable programs.  It focuses onprograms written in C, but many of the rules and principles are usefuleven if you write in another programming language.  The rules oftenstate reasons for writing in a certain way.Corrections or suggestions for this document should be sent to@email{gnu@@gnu.org}.  If you make a suggestion, please include asuggested new wording for it; our time is limited.  We prefer a contextdiff to the @file{standards.texi} or @file{make-stds.texi} files, but ifyou don't have those files, please mail your suggestion anyway.This release of the GNU Coding Standards was last updated@value{lastupdate}.@node Intellectual Property@chapter Keeping Free Software FreeThis @value{CHAPTER} discusses how you can make sure that GNU softwareremains unencumbered.@menu* Reading Non-Free Code::       Referring to Proprietary Programs* Contributions::               Accepting Contributions@end menu@node Reading Non-Free Code@section Referring to Proprietary ProgramsDon't in any circumstances refer to Unix source code for or duringyour work on GNU!  (Or to any other proprietary programs.)If you have a vague recollection of the internals of a Unix program,this does not absolutely mean you can't write an imitation of it, butdo try to organize the imitation internally along different lines,because this is likely to make the details of the Unix versionirrelevant and dissimilar to your results.For example, Unix utilities were generally optimized to minimizememory use; if you go for speed instead, your program will be verydifferent.  You could keep the entire input file in core and scan itthere instead of using stdio.  Use a smarter algorithm discovered morerecently than the Unix program.  Eliminate use of temporary files.  Doit in one pass instead of two (we did this in the assembler).Or, on the contrary, emphasize simplicity instead of speed.  For someapplications, the speed of today's computers makes simpler algorithmsadequate.Or go for generality.  For example, Unix programs often have statictables or fixed-size strings, which make for arbitrary limits; usedynamic allocation instead.  Make sure your program handles NULs andother funny characters in the input files.  Add a programming languagefor extensibility and write part of the program in that language.Or turn some parts of the program into independently usable libraries.Or use a simple garbage collector instead of tracking precisely whento free memory, or use a new GNU facility such as obstacks.@node Contributions@section Accepting ContributionsIf someone else sends you a piece of code to add to the program you areworking on, we need legal papers to use it---the same sort of legalpapers we will need to get from you.  @emph{Each} significantcontributor to a program must sign some sort of legal papers in orderfor us to have clear title to the program.  The main author alone is notenough.So, before adding in any contributions from other people, please tellus, so we can arrange to get the papers.  Then wait until we tell youthat we have received the signed papers, before you actually use thecontribution.This applies both before you release the program and afterward.  Ifyou receive diffs to fix a bug, and they make significant changes, weneed legal papers for that change.This also applies to comments and documentation files.  For copyrightlaw, comments and code are just text.  Copyright applies to all kinds oftext, so we need legal papers for all kinds.You don't need papers for changes of a few lines here or there, sincethey are not significant for copyright purposes.  Also, you don't needpapers if all you get from the suggestion is some ideas, not actual codewhich you use.  For example, if you write a different solution to theproblem, you don't need to get papers.We know this is frustrating; it's frustrating for us as well.  But ifyou don't wait, you are going out on a limb---for example, what if thecontributor's employer won't sign a disclaimer?  You might have to takethat code out again!The very worst thing is if you forget to tell us about the othercontributor.  We could be very embarrassed in court some day as aresult.We have more detailed advice for maintainers of programs; if you havereached the stage of actually maintaining a program for GNU (whetherreleased or not), please ask us for a copy.@node Design Advice@chapter General Program DesignThis @value{CHAPTER} discusses some of the issues you should take intoaccount when designing your program.@menu* Compatibility::               Compatibility with other implementations* Using Extensions::            Using non-standard features* ANSI C::                      Using ANSI C features* Source Language::             Using languages other than C@end menu@node Compatibility@section Compatibility with Other ImplementationsWith occasional exceptions, utility programs and libraries for GNUshould be upward compatible with those in Berkeley Unix, and upwardcompatible with @sc{ansi} C if @sc{ansi} C specifies their behavior, andupward compatible with @sc{POSIX} if @sc{POSIX} specifies theirbehavior.When these standards conflict, it is useful to offer compatibilitymodes for each of them.@sc{ansi} C and @sc{POSIX} prohibit many kinds of extensions.  Feel freeto make the extensions anyway, and include a @samp{--ansi},@samp{--posix}, or @samp{--compatible} option to turn them off.However, if the extension has a significant chance of breaking any realprograms or scripts, then it is not really upward compatible.  Try toredesign its interface.Many GNU programs suppress extensions that conflict with POSIX if theenvironment variable @code{POSIXLY_CORRECT} is defined (even if it isdefined with a null value).  Please make your program recognize thisvariable if appropriate.When a feature is used only by users (not by programs or commandfiles), and it is done poorly in Unix, feel free to replace itcompletely with something totally different and better.  (For example,@code{vi} is replaced with Emacs.)  But it is nice to offer a compatiblefeature as well.  (There is a free @code{vi} clone, so we offer it.)Additional useful features not in Berkeley Unix are welcome.@node Using Extensions@section Using Non-standard FeaturesMany GNU facilities that already exist support a number of convenientextensions over the comparable Unix facilities.  Whether to use theseextensions in implementing your program is a difficult question.On the one hand, using the extensions can make a cleaner program.On the other hand, people will not be able to build the programunless the other GNU tools are available.  This might cause theprogram to work on fewer kinds of machines.With some extensions, it might be easy to provide both alternatives.For example, you can define functions with a ``keyword'' @code{INLINE}and define that as a macro to expand into either @code{inline} ornothing, depending on the compiler.In general, perhaps it is best not to use the extensions if you canstraightforwardly do without them, but to use the extensions if theyare a big improvement.An exception to this rule are the large, established programs (such asEmacs) which run on a great variety of systems.  Such programs wouldbe broken by use of GNU extensions.Another exception is for programs that are used as part ofcompilation: anything that must be compiled with other compilers inorder to bootstrap the GNU compilation facilities.  If these requirethe GNU compiler, then no one can compile them without having theminstalled already.  That would be no good.@node ANSI C@section @sc{ansi} C and pre-@sc{ansi} CDo not ever use the ``trigraph'' feature of @sc{ansi} C.@sc{ansi} C is widespread enough now that it is ok to write new programsthat use @sc{ansi} C features (and therefore will not work innon-@sc{ansi} compilers).  And if a program is already written in@sc{ansi} C, there's no need to convert it to support non-@sc{ansi}compilers.However, it is easy to support non-@sc{ansi} compilers in most programs,so you might still consider doing so when you write a program.  Insteadof writing function definitions in @sc{ansi} prototype form,@exampleintfoo (int x, int y)@dots{}@end example@noindentwrite the definition in pre-@sc{ansi} style like this,@exampleintfoo (x, y)     int x, y;@dots{}@end example@noindentand use a separate declaration to specify the argument prototype:@exampleint foo (int, int);@end exampleYou need such a declaration anyway, in a header file, to get the benefitof @sc{ansi} C prototypes in all the files where the function is called.And once you have it, you lose nothing by writing the functiondefinition in the pre-@sc{ansi} style.If you don't know non-@sc{ansi} C, there's no need to learn it; justwrite in @sc{ansi} C.@node Source Language@section Using Languages Other Than CUsing a language other than C is like using a non-standard feature: itwill cause trouble for users.  Even if GCC supports the other language,users may find it inconvenient to have to install the compiler for thatother language in order to build your program.  For example, if youwrite your program in C++, people will have to install the C++ compilerin order to compile your program.  Thus, it is better if you write in C.But there are three situations when there is no disadvantage in usingsome other language:@itemize @bullet@itemIt is okay to use another language if your program contains aninterpreter for that language.For example, if your program links with GUILE, it is ok to write part ofthe program in Scheme or another language supported by GUILE.@itemIt is okay to use another language in a tool specifically intended foruse with that language.This is okay because the only people who want to build the tool will bethose who have installed the other language anyway.@itemIf an application is of interest to a narrow community, then perhapsit's not important if the application is inconvenient to install.@end itemizeC has one other advantage over C++ and other compiled languages: morepeople know C, so more people will find it easy to read and modify theprogram if it is written in C.@node Program Behavior@chapter Program Behavior for All ProgramsThis @value{CHAPTER} describes how to write robust software. It alsodescribes general standards for error messages, the command line interface,and how libraries should behave.@menu* Semantics::                   Writing robust programs* Libraries::                   Library behavior* Errors::                      Formatting error messages* User Interfaces::             Standards for command line interfaces* Option Table::                Table of long options.* Memory Usage::                When and how to care about memory needs@end menu@node Semantics@section Writing Robust ProgramsAvoid arbitrary limits on the length or number of @emph{any} datastructure, including file names, lines, files, and symbols, by allocatingall data structures dynamically.  In most Unix utilities, ``long linesare silently truncated''.  This is not acceptable in a GNU utility.Utilities reading files should not drop NUL characters, or any othernonprinting characters @emph{including those with codes above 0177}.  Theonly sensible exceptions would be utilities specifically intended forinterface to certain types of printers that can't handle those characters.Check every system call for an error return, unless you know you wish toignore errors.  Include the system error text (from @code{perror} orequivalent) in @emph{every} error message resulting from a failingsystem call, as well as the name of the file if any and the name of theutility.  Just ``cannot open foo.c'' or ``stat failed'' is notsufficient.Check every call to @code{malloc} or @code{realloc} to see if itreturned zero.  Check @code{realloc} even if you are making the blocksmaller; in a system that rounds block sizes to a power of 2,@code{realloc} may get a different block if you ask for less space.In Unix, @code{realloc} can destroy the storage block if it returnszero.  GNU @code{realloc} does not have this bug: if it fails, theoriginal block is unchanged.  Feel free to assume the bug is fixed.  Ifyou wish to run your program on Unix, and wish to avoid lossage in thiscase, you can use the GNU @code{malloc}.You must expect @code{free} to alter the contents of the block that wasfreed.  Anything you want to fetch from the block, you must fetch beforecalling @code{free}.If @code{malloc} fails in a noninteractive program, make that a fatalerror.  In an interactive program (one that reads commands from theuser), it is better to abort the command and return to the commandreader loop.  This allows the user to kill other processes to free upvirtual memory, and then try the command again.Use @code{getopt_long} to decode arguments, unless the argument syntaxmakes this unreasonable.When static storage is to be written in during program execution, useexplicit C code to initialize it.  Reserve C initialized declarationsfor data that will not be changed.@c ADR: why?Try to avoid low-level interfaces to obscure Unix data structures (suchas file directories, utmp, or the layout of kernel memory), since theseare less likely to work compatibly.  If you need to find all the filesin a directory, use @code{readdir} or some other high-level interface.These will be supported compatibly by GNU.By default, the GNU system will provide the signal handling functions of@sc{BSD} and of @sc{POSIX}.  So GNU software should be written to usethese.In error checks that detect ``impossible'' conditions, just abort.There is usually no point in printing any message.  These checksindicate the existence of bugs.  Whoever wants to fix the bugs will haveto read the source code and run a debugger.  So explain the problem withcomments in the source.  The relevant data will be in variables, whichare easy to examine with the debugger, so there is no point moving themelsewhere.Do not use a count of errors as the exit status for a program.@emph{That does not work}, because exit status values are limited to 8bits (0 through 255).  A single run of the program might have 256errors; if you try to return 256 as the exit status, the parent processwill see 0 as the status, and it will appear that the program succeeded.If you make temporary files, check the @code{TMPDIR} environmentvariable; if that variable is defined, use the specified directoryinstead of @file{/tmp}.@node Libraries@section Library BehaviorTry to make library functions reentrant.  If they need to do dynamicstorage allocation, at least try to avoid any nonreentrancy aside fromthat of @code{malloc} itself.Here are certain name conventions for libraries, to avoid nameconflicts.Choose a name prefix for the library, more than two characters long.All external function and variable names should start with thisprefix.  In addition, there should only be one of these in any givenlibrary member.  This usually means putting each one in a separatesource file.An exception can be made when two external symbols are always usedtogether, so that no reasonable program could use one without theother; then they can both go in the same file.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产精品一区二区夜夜嗨| 精品88久久久久88久久久| 三级久久三级久久久| 久久久久国产精品麻豆| 欧美丝袜自拍制服另类| 高清不卡一区二区在线| 亚洲电影在线播放| 国产精品久久久久影视| 欧美放荡的少妇| 色婷婷亚洲精品| 国产激情一区二区三区四区| 日韩综合一区二区| 玉米视频成人免费看| 欧美国产激情二区三区| 日韩欧美国产小视频| 欧美视频在线一区| 99国产精品久久久久久久久久| 国产一区二区剧情av在线| 丝袜美腿亚洲色图| 亚洲一级二级三级在线免费观看| 中文字幕精品综合| 久久免费电影网| 亚洲精品一区二区精华| 69久久夜色精品国产69蝌蚪网| 色网综合在线观看| 93久久精品日日躁夜夜躁欧美| 国产精品一线二线三线| 精品一区二区免费| 麻豆91精品视频| 奇米色一区二区| 日韩成人精品视频| 日本亚洲天堂网| 免费成人在线网站| 免费高清视频精品| 精品综合免费视频观看| 美女任你摸久久| 蜜臀a∨国产成人精品| 日韩精品一二区| 日本在线不卡视频| 蜜臀av亚洲一区中文字幕| 日韩电影免费在线观看网站| 日本不卡中文字幕| 麻豆精品在线观看| 国产自产v一区二区三区c| 精品午夜久久福利影院| 国产一区二区三区久久久| 国产一区二区三区在线观看免费| 国产在线国偷精品产拍免费yy| 国产综合色产在线精品| 国产九色精品成人porny | 亚洲国产高清在线观看视频| 久久午夜国产精品| 中文字幕av不卡| 亚洲欧洲99久久| 亚洲乱码中文字幕综合| 亚洲va国产va欧美va观看| 亚洲a一区二区| 另类专区欧美蜜桃臀第一页| 国产一区91精品张津瑜| 成人小视频在线| 欧美在线免费观看亚洲| 欧美一区二区三区在线观看视频| 91精品国产麻豆国产自产在线| 精品久久久久久久久久久院品网| 国产欧美一二三区| 亚洲男同性恋视频| 日本大胆欧美人术艺术动态| 国产精品一区二区久久不卡| av电影在线观看不卡| 欧美日韩一区二区三区不卡| 日韩欧美黄色影院| 国产精品白丝在线| 成人免费看视频| av不卡一区二区三区| 欧美精品日韩一区| 国产农村妇女精品| 亚洲国产视频一区二区| 精品一区二区在线播放| 成人黄色小视频在线观看| 色av成人天堂桃色av| 欧美一区二区在线免费观看| 国产精品天干天干在线综合| 亚洲五码中文字幕| 国产在线一区观看| 欧美亚洲动漫另类| 久久婷婷国产综合精品青草| 亚洲免费观看高清在线观看| 久久97超碰国产精品超碰| 91视视频在线观看入口直接观看www | 婷婷综合久久一区二区三区| 国产一区免费电影| 欧美性感一类影片在线播放| 国产亚洲一区字幕| 日韩av网站在线观看| 91在线免费播放| 精品久久国产97色综合| 亚洲一区二区三区四区五区中文| 国产在线视视频有精品| 欧美色电影在线| 国产精品午夜在线观看| 日本成人在线不卡视频| 91丨porny丨中文| 久久久青草青青国产亚洲免观| 亚洲国产aⅴ天堂久久| 成人精品小蝌蚪| 亚洲精品在线免费播放| 天堂成人国产精品一区| 91污片在线观看| 国产欧美日韩精品一区| 免费成人小视频| 欧美日韩视频在线一区二区| 国产精品麻豆久久久| 狠狠久久亚洲欧美| 欧美高清性hdvideosex| 夜夜爽夜夜爽精品视频| yourporn久久国产精品| 欧美激情综合在线| 国产一区二区三区免费| 欧美成va人片在线观看| 婷婷丁香久久五月婷婷| 欧美日韩在线不卡| 一区二区三区不卡在线观看| 99久久久国产精品| 国产精品毛片无遮挡高清| 国产盗摄女厕一区二区三区| 精品久久久久一区二区国产| 老司机午夜精品| 日韩午夜在线影院| 蜜桃久久久久久| 日韩午夜在线播放| 美女诱惑一区二区| 日韩精品专区在线影院观看 | 亚洲第一狼人社区| 欧洲精品中文字幕| 亚洲资源在线观看| 欧美亚洲综合在线| 亚洲成年人影院| 欧美日韩成人一区二区| 午夜私人影院久久久久| 欧美美女喷水视频| 日韩电影网1区2区| 日韩欧美在线一区二区三区| 美女一区二区三区| 精品国产精品网麻豆系列| 国内精品伊人久久久久av影院 | 日韩欧美国产一二三区| 极品少妇xxxx精品少妇| 精品国产91九色蝌蚪| 国产美女精品在线| 国产精品女主播在线观看| av一区二区三区| 亚洲综合丝袜美腿| 亚洲免费在线观看视频| 一本久道中文字幕精品亚洲嫩| 一区二区在线电影| 欧美精品xxxxbbbb| 精品一区在线看| 国产精品网站在线| 欧洲另类一二三四区| 日韩国产欧美视频| 久久久激情视频| 91麻豆国产福利精品| 婷婷激情综合网| 国产午夜亚洲精品不卡| 色一情一伦一子一伦一区| 日日嗨av一区二区三区四区| 久久人人超碰精品| 99精品欧美一区二区三区综合在线| 亚洲精品免费在线观看| 91精品国产免费久久综合| 国产成+人+日韩+欧美+亚洲 | 精品一区二区三区欧美| 国产精品乱人伦| 欧美日韩亚洲丝袜制服| 国产中文字幕精品| 亚洲欧美另类图片小说| 欧美一级视频精品观看| 成人小视频在线观看| 三级亚洲高清视频| 中文字幕在线观看一区| 欧美另类久久久品| 成人丝袜18视频在线观看| 天天做天天摸天天爽国产一区| 精品国产亚洲一区二区三区在线观看| av电影天堂一区二区在线 | 亚洲午夜久久久久| 欧美不卡123| 91黄视频在线| 国产另类ts人妖一区二区| 一区二区三区不卡在线观看 | 久久99最新地址| 亚洲伦理在线免费看| 久久久久九九视频| 欧美视频一区二区三区四区| 激情小说亚洲一区| 婷婷中文字幕综合| 亚洲欧美精品午睡沙发| 久久久久久久久久久久久女国产乱| 欧美性猛交xxxx黑人交| 成人免费视频app|