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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? standards.texi

?? 基于4個mips核的noc設(shè)計
?? 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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区资源| 91精品国产欧美一区二区18| 国产性做久久久久久| 国产一区二区视频在线播放| 日韩精品一区国产麻豆| 日本欧美一区二区| 精品少妇一区二区三区免费观看| 奇米精品一区二区三区四区| 精品国产自在久精品国产| 国精产品一区一区三区mba视频 | 欧美一区二区视频网站| 免费观看91视频大全| 久久综合网色—综合色88| 国产一区不卡视频| 国产精品乱码一区二区三区软件 | 91精品国产综合久久久蜜臀图片| 日韩精品一二三四| 久久综合一区二区| 91色九色蝌蚪| 免费人成精品欧美精品| 久久久午夜电影| 一本高清dvd不卡在线观看| 亚洲成人激情社区| 26uuu欧美| 色噜噜狠狠一区二区三区果冻| 偷窥国产亚洲免费视频| 久久久国际精品| 欧美午夜电影一区| 国产麻豆午夜三级精品| 亚洲免费视频成人| 欧美电视剧免费全集观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 成人一道本在线| 亚洲国产日韩精品| 久久精品亚洲精品国产欧美kt∨| 91免费看片在线观看| 久久国产免费看| 一区二区三区成人| 久久综合九色综合97婷婷| 在线观看一区二区视频| 黑人巨大精品欧美一区| 亚洲国产aⅴ成人精品无吗| 久久综合狠狠综合久久激情| 在线观看一区不卡| 国产91精品一区二区麻豆网站 | 亚洲一区二区三区国产| 久久亚洲二区三区| 6080日韩午夜伦伦午夜伦| 99在线精品视频| 国产麻豆精品在线观看| 亚洲丶国产丶欧美一区二区三区| 欧美韩日一区二区三区四区| 日韩视频一区二区| 在线观看日韩av先锋影音电影院| 国产美女视频一区| 蜜桃一区二区三区在线观看| 亚洲图片欧美一区| 亚洲精品精品亚洲| 国产精品成人在线观看| 国产视频一区二区在线观看| 日韩欧美亚洲国产精品字幕久久久| 欧美视频日韩视频在线观看| av成人动漫在线观看| 国产剧情一区在线| 久久国产麻豆精品| 奇米色一区二区| 日韩黄色在线观看| 亚洲sss视频在线视频| 亚洲欧美日本在线| 1区2区3区精品视频| 国产精品福利av| 国产精品每日更新| 国产精品久久久久久久蜜臀 | 国产成人av电影在线观看| 麻豆成人91精品二区三区| 天天综合日日夜夜精品| 亚洲午夜视频在线| 亚洲国产美国国产综合一区二区| 亚洲丝袜制服诱惑| 亚洲精品国产无套在线观| 日韩美女久久久| 亚洲免费在线观看| 亚洲一区二区三区视频在线播放| 一区二区三区小说| 亚洲电影你懂得| 日韩av电影免费观看高清完整版| 欧美a级理论片| 久久99精品视频| 国产精品一区二区黑丝| 成人影视亚洲图片在线| 99国产精品99久久久久久| 91亚洲精品一区二区乱码| 91美女在线观看| 欧美性猛片xxxx免费看久爱| 欧美午夜精品久久久| 在线免费视频一区二区| 欧美精品久久一区二区三区| 欧美电视剧在线看免费| 久久精品亚洲麻豆av一区二区| 中文字幕日韩欧美一区二区三区| 亚洲精品高清在线| 日本免费在线视频不卡一不卡二| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区不卡在线| 一本色道久久综合亚洲aⅴ蜜桃| 欧美性色欧美a在线播放| 日韩欧美在线影院| 中文字幕乱码一区二区免费| 亚洲黄一区二区三区| 日韩电影免费一区| 国产超碰在线一区| 欧美日韩视频专区在线播放| 精品剧情v国产在线观看在线| 国产精品欧美一区喷水| 亚洲韩国精品一区| 国产精品资源在线看| 色婷婷久久99综合精品jk白丝 | 3d动漫精品啪啪| 国产性做久久久久久| 一区二区三区四区五区视频在线观看| 天天综合色天天综合色h| 国产成人精品一区二| 欧美日韩国产一级片| 久久久久国产精品人| 亚洲自拍欧美精品| 国产成人精品www牛牛影视| 欧美中文字幕久久| 久久久久久黄色| 日韩制服丝袜先锋影音| 成人黄色777网| 日韩精品中文字幕一区二区三区| 亚洲视频一区在线| 国产在线播放一区三区四| 欧美在线一区二区| 欧美激情一区二区三区蜜桃视频| 日欧美一区二区| 色综合久久综合网欧美综合网| 日韩免费高清视频| 亚洲成人激情av| 91丝袜美腿高跟国产极品老师| 精品免费国产一区二区三区四区| 亚洲精品欧美二区三区中文字幕| 懂色av中文一区二区三区| 精品国产免费人成在线观看| 一级日本不卡的影视| 成人黄色一级视频| 久久久www成人免费毛片麻豆| 日韩不卡手机在线v区| 91首页免费视频| 国产精品电影院| 国产成人8x视频一区二区| 久久在线观看免费| 久久国产生活片100| 欧美一区二区播放| 午夜精品久久久久久不卡8050| 91视频在线看| 亚洲精品视频免费观看| 99久久伊人久久99| 中文字幕 久热精品 视频在线| 激情偷乱视频一区二区三区| 欧美成人猛片aaaaaaa| 蜜臀va亚洲va欧美va天堂| 欧美一区二区三区不卡| 性欧美大战久久久久久久久| 欧美三区在线观看| 洋洋av久久久久久久一区| 91美女福利视频| 亚洲一区自拍偷拍| 欧美伊人久久久久久久久影院| 亚洲综合一区在线| 欧美中文字幕一区二区三区亚洲| 一区二区欧美在线观看| 日本福利一区二区| 亚洲精品视频自拍| 日本久久电影网| 亚洲综合色成人| 欧美精品九九99久久| 丝袜国产日韩另类美女| 欧美一区二区三区啪啪| 免费不卡在线观看| 2021中文字幕一区亚洲| 国产高清精品在线| 亚洲欧美偷拍另类a∨色屁股| 色狠狠色狠狠综合| 亚洲成在人线在线播放| 日韩一区二区视频| 国产一区二区精品久久99| 中文天堂在线一区| 在线亚洲精品福利网址导航| 亚洲成人精品影院| 精品久久久久久久久久久院品网| 狠狠色丁香久久婷婷综| 中文字幕永久在线不卡| 在线亚洲人成电影网站色www| 亚洲综合免费观看高清在线观看| 欧美福利视频导航| 国产美女在线观看一区| 亚洲日本欧美天堂| 4438x亚洲最大成人网| 国产精品综合一区二区三区|