codestyle.tex
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. chapter{ns Code Styles}
  2. label{chap:codestyle}
  3. We recommend the following coding guidelines for ns 
  4. section{Indentation style}
  5. label{sec:indentationstyle}
  6. begin{itemize}
  7. item We recommend using the BSD Kernel Normal Form coding style located at\
  8. http://cvsweb.netbsd.org/bsdweb.cgi/sharesrc/share/misc/style?rev=HEAD&content-type=text/x-cvsweb-markup
  9. item Although KNF is specified for C, it also applies reasonably well to C++ and Tcl.
  10. Most of ns already follows KNF and it is also extensively used for the BSD and
  11. Linux kernels.
  12. item The high order bit is 8-space indents.
  13. Using 8-space indents avoid confusion about what a "tab" character
  14. represents.  A downside is it makes deeply nested looping structures
  15. hard to fit in 80 columns.  (Some people consider this a feature. :-)
  16. end{itemize}
  17. section{Variable Naming Conventions}
  18. label{sec:variablenamingconventions}
  19. begin{itemize}
  20. item Instance variables of a class should all end in an underscore.
  21. This helps distinguish instance variables from global and local
  22. variables.
  23. item C++ and Tcl bound variables should have the same names
  24. This helps identify the bound variables quickly and reduces complexity
  25. end{itemize}
  26. section{Miscellaneous}
  27. label{sec:miscellaneous}
  28. begin{itemize}
  29. item Avoid the use of C++ templates.
  30. Ns is supported on multiple platforms and templates are not
  31. very portable and are often difficult to debug.
  32. Exception: This guideline has been relaxed for some imported code,
  33. but the core of ns should build and run without templates.
  34. item For NsObjects, use the debug_ instance variable to enable debugging functionality.
  35. This avoids repetitive definations of debug statements and allows debugging a particular
  36. Nsobject without recompilation.
  37. Example:
  38. To enable debugging in Queue object include the following statement in your tcl script.
  39. begin{program}
  40. Queue set debug_ true
  41. end{program}
  42. Debugging statments can be inserted in the classes inheriting from Queue as follows:
  43. begin{program}
  44. debug("This is a debug statement %d",variable_to_debug);
  45. end{program}
  46. All debugging statements are sent to stdout.
  47. item Error messages which cause the program to exit should be sent to stderr.
  48. All other messages should be sent to stdout
  49. end{itemize}