精华内容
下载资源
问答
  • C语言添加注释

    千次阅读 2017-05-09 17:12:53
    #include #include #include int main( ) { int m,k=1,n; char line1[256],line[256];//将文件中的数据读入到字符数组中 FILE *fpin = fopen("sourcefile.c","r"); if(fpin==NULL) ... printf("source c
    #include <stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main( )
    {
        int m,k=1,n;
        char line1[256],line[256];//将文件中的数据读入到字符数组中
        FILE *fpin = fopen("sourcefile.c","r");
        if(fpin==NULL)
        {
            printf("source code read error!\n");
            exit(1);
        }
        FILE *fpout = fopen("targetfile.c","w+");
        if(fpout==NULL)
        {
            printf("source code write error!\n");
            exit(1);
        }
        printf("请输入m和n:");
        scanf("%d %d", &m, &n);
        int n1=0;
        fgets(line1,255,fpin);
        do
        {
            n1++;
            if(n1>=m&&n1<m+k)
                fputs("//",fpout);
            fputs(line1, fpout);
            fgets(line1,255,fpin);
        }
        while(!feof(fpin));
        fseek(fpout,0,SEEK_SET);
        fgets(line,255,fpout);
        do
        {
            printf("%d\t%s", k, line);
            k++;
            fgets(line,255,fpout);
        }
        while (!feof(fpout));
        fclose(fpout);
        fclose(fpin);
        return 0;
    }
    

    展开全文
  • 利用Source Insight宏语言脚本添加注释一,前言总所周知,在Windows开发环境中,一个几百兆C语言工程代码中,最好用的编辑工具当然就是Source Insight了。SourceInsight(目前大多使用的版本为3.5)的MacroLanguage...

    利用Source Insight宏语言脚本添加注释

    一,前言

    总所周知,在Windows开发环境中,一个几百兆C语言工程代码中,最好用的编辑工具当然就是Source Insight了。Source

    Insight(目前大多使用的版本为3.5)的Macro

    Language提供的API非常强大,其实我们可以利用这些API编写一些脚本,通过映射快捷键来达到高效而规范开发的目的。

    而在一个团队协作开发的项目中,如果后期主要工作是Debug,那么仅仅只是规范注释,对于问题的追踪,代码的美观都显得尤为重要。因为Source

    Insight可以自定义出各种功能的脚本。本文只介绍如何利用Source Insight的宏语言编写脚本,快速添加统一规范化的注释。

    二,编写注释脚本

    打开Source

    Insight,按F1,会出来Source Insight Help文档,里面有个Macro Language

    Guide,相信大家看完之后,都可以尝试着去编写各种各样的脚本出来。正如Vim出来之后,很多牛人编写了功能强大的插件一样,让Vim成为Linux

    下的一件编辑利器。本人也是通过尝试,花了一个晚上时间写出来一个添加注释的简单脚本。在此贴出我的脚本,文件名为

    BryanCommentsV1.0.em:

    /*

    *************************************************************

    *                     Comments Add File

    *             Copy Rights by BryanZhu @2010-2046

    *

    * FileName: BryanCommentsV1.0.em

    * Author: BryanZhu

    * Email: hbzqiang@163.com

    * Date: 2010-08-29

    *

    *************************************************************

    */

    /*

    *************************************************************

    * FunctionName : GetStandardTimeString

    * Description : get the system time by YYYY/MM/DD format.

    * ReturnValue : return a system time string.

    * Parameter[0] :

    * Parameter[1] :

    * Author : BryanZhu

    * Date : 2010-08-29

    *************************************************************

    */

    macro GetStandardTimeString()

    {

    var szSysTime

    var szYear

    var szMonth

    var szDay

    var szTempMonth

    var szTempDay

    var szTimeString

    szSysTime = GetSysTime(1)

    szYear = szSysTime.Year

    szTempMonth = szSysTime.Month

    szTempDay = szSysTime.Day

    if(szTempMonth

    {

    szMonth = "0@szTempMonth@"

    }

    else

    {

    szMonth = szTempMonth

    }

    if(szTempDay

    {

    szDay = "0@szTempDay@"

    }

    else

    {

    szDay = szTempDay

    }

    szTimeString = "@szYear@/@szMonth@/@szDay@"

    return szTimeString

    }

    /*

    *************************************************************

    * FunctionName : InsertCommentsInfo

    * Description : Save Basic Comments Info in a special file to parse the info.

    *              by other macro functions.

    * ReturnValue : NONE

    * Parameter[0] :

    * Parameter[1] :

    * Author : BryanZhu

    * Date : 2010-08-29

    *************************************************************

    */

    macro InsertCommentsInfo(hbuf)

    {

    var szModifyID

    var szAuthorName

    var szComment

    szModifyID = "ModifyID:RF00000000"

    szAuthorName = "AuthorName:BryanZhu"

    szComment = "Comment:Please_input_your_comment_statement_here."

    InsBufLine(hbuf, 0, szModifyID)

    InsBufLine(hbuf, 1, szAuthorName)

    InsBufLine(hbuf, 2, szComment)

    }

    /*

    *************************************************************

    * FunctionName : BryanSaveCommentsInfo

    * Description : save the infomation of comments

    * ReturnValue : NONE

    * Parameter[0] :

    * Parameter[1] :

    * Author : BryanZhu

    * Date : 2010-08-29

    *************************************************************

    */

    macro BryanSaveCommentsInfo()

    {

    var filename

    var NewFileBufName

    var hbuf

    var hwnd

    var hprj

    var nProjFileCount

    var iFileIndex

    var tempFileName

    filename = "CommentsConfigFile.bryan"

    //judge the comments info file if is in current project.

    hprj = GetCurrentProj()

    nProjFileCount = GetProjFileCount(hprj)

    iFileIndex = 0

    while(iFileIndex

    {

    tempFileName = GetProjFileName(hprj, iFileIndex)

    if(tempFileName == filename)

    {

    //Msg("@filename@ file is existed in this project...")

    hbuf = OpenBuf(filename)

    if(hbuf != hNil)

    {

    hwnd = NewWnd(hbuf)

    if(hwnd != hNil)

    {

    SaveBufAs(hbuf, filename)

    AddFileToProj(hprj, filename)

    }

    else

    {

    Msg("Create new window error!-1")

    }

    }

    else

    {

    Msg("Create new empty file buffer error!-1")

    }

    break

    }

    else

    {

    iFileIndex = iFileIndex + 1

    if(iFileIndex == nProjFileCount)

    {

    //Msg("@filename@ file is not existed in this project...")

    hbuf = NewBuf(NewFileBufName)

    if(hbuf != hNil)

    {

    hwnd = NewWnd(hbuf)

    if(hwnd != hNil)

    {

    hprj = GetCurrentProj()

    InsertCommentsInfo(hbuf)

    SaveBufAs(hbuf, filename)

    AddFileToProj(hprj, filename)

    }

    else

    {

    Msg("Create new window error!-2")

    }

    //CloseBuf(hbuf)

    }

    else

    {

    Msg("Create new empty file buffer error!-2")

    }

    break

    }

    }

    }

    stop

    }

    macro GetCommentsInfoFileName()

    {

    return "CommentsConfigFile.bryan"

    }

    macro IsCommentsInfoFileExist()

    {

    var filename

    var hprj

    var nProjFileCount

    var iFileIndex

    var tempFileName

    filename = "CommentsConfigFile.bryan"

    hprj = GetCurrentProj()

    nProjFileCount = GetProjFileCount(hprj)

    iFileIndex = 0

    while(iFileIndex

    {

    tempFileName = GetProjFileName(hprj, iFileIndex)

    if(tempFileName == filename)

    {

    return 1    // File is exist.

    }

    else

    {

    iFileIndex = iFileIndex + 1

    }

    }

    return 0    // File is not exist.

    }

    macro GetCommentsInfo(iBufLineIndex)

    {

    var filename

    var hbuf

    var szText

    var nBufLineCount

    var nTextLength

    filename = GetCommentsInfoFileName()

    if(IsCommentsInfoFileExist())

    {

    hbuf = OpenBuf(filename)

    if(hbuf != hNil)

    {

    nBufLineCount = GetBufLineCount(hbuf)

    if(iBufLineIndex <= nBufLineCount)

    {

    szText = GetBufLine(hbuf, iBufLineIndex)

    nTextLength = strlen(szText)

    if(iBufLineIndex == 0)

    {

    szText = strmid(szText, 9, nTextLength)

    }

    else if(iBufLineIndex == 1)

    {

    szText = strmid(szText, 11, nTextLength)

    }

    else if(iBufLineIndex == 2)

    {

    szText = strmid(szText, 8, nTextLength)

    }

    CloseBuf(hbuf)

    return szText

    }

    else

    {

    Msg("GetCommentsInfo() parameter @iInfoIndex@ error....")

    }

    }

    else

    {

    Msg("GetModifyIDofCommentsInfo(): Open buffer fail...")

    stop

    }

    }

    else

    {

    Msg("@filename@ is not exist...")

    stop

    }

    }

    /*

    *************************************************************

    * FunctionName : BryanAddSelBlockComments

    * Description : add comments to contain the selected block statements.

    * ReturnValue : NONE

    * Parameter[0] :

    * Parameter[1] :

    * Author : BryanZhu

    * Date : 2010-08-29

    *************************************************************

    */

    macro BryanAddSelBlockComments()

    {

    var hwnd

    var hbuf

    var firstSelLine

    var lastSelLine

    var sztempFirstRemark

    var sztempLastRemark

    var szFirstRemark

    var szLastRemark

    var szfirstSelLineText

    var szTimeString

    var szModifyID

    var szAuthorName

    var szComment

    var ichIndex

    sztempFirstRemark = "//

    sztempLastRemark  = "// ->"

    szFirstRemark = Nil

    szLastRemark = Nil

    szTimeString = GetStandardTimeString()

    szModifyID = GetCommentsInfo(0)

    szAuthorName = GetCommentsInfo(1)

    szComment = GetCommentsInfo(2)

    if(IsCommentsInfoFileExist())

    {

    sztempFirstRemark = sztempFirstRemark # szModifyID # "-" # szAuthorName # "-" # szTimeString # "-" # szComment

    sztempLastRemark  = sztempLastRemark  # szModifyID # "-" # szAuthorName

    hwnd = GetCurrentWnd()

    hbuf = GetCurrentBuf()

    firstSelLine = GetWndSelLnFirst(hwnd)

    lastSelLine = GetWndSelLnLast(hwnd)

    szfirstSelLineText = GetBufLine(hbuf, firstSelLine)

    ichIndex = 0

    while(szfirstSelLineText[ichIndex] == "" || szfirstSelLineText[ichIndex] == "\t")

    {

    if(szfirstSelLineText[ichIndex] == "" )

    {

    szFirstRemark = cat(szFirstRemark, "")

    szLastRemark = cat(szLastRemark, "")

    }

    else

    {

    szFirstRemark = cat(szFirstRemark, "\t")

    szLastRemark = cat(szLastRemark, "\t")

    }

    ichIndex = ichIndex + 1

    }

    szFirstRemark = cat(szFirstRemark, sztempFirstRemark)

    szLastRemark = cat(szLastRemark, sztempLastRemark)

    InsBufLine(hbuf, firstSelLine, szFirstRemark)

    InsBufLine(hbuf, lastSelLine+2, szLastRemark)

    SaveBuf(hbuf)

    }

    else

    {

    BryanSaveCommentsInfo()

    }

    stop

    }

    三,添加BryanCommentsV1.0.em脚本到Source Insight的Base项目中

    将BryanCommentsV1.0.em拷贝到Source Insight的Base项目所在的文件夹下,比如 C:\Documents and

    Settings\Source Insight\Projects\Base    ,然后打开Source

    Insight的Base项目,通过菜单Project -> Add and Remove Project Files...

    ,将BryanCommentsV1.0.em添加进Base项目。

    四,自定义菜单

    打开Menu -> Menu

    Assignments, Menu栏选择Work菜单(当然,你想把自定义的Macro功能添加到哪个菜单都行。笔者以Work菜单为例)

    ,在Command栏输入macro快速查找,这时会出现Macro: BryanAddSelBlockComments和Macro:

    BryanSaveCommentsInfo两个在脚本里自定义的宏,选中Menu Contents里的和左边两个自定义的宏,添加进去,点击OK,即可。

    五,编辑注释信息

    在Work菜单中,点击BryanSaveCommentsInfo,这时可以编辑ModifyID,这个ID可以是你的BUG库ID,可以编辑

    AuthorName为自己的姓名,可以编辑Comment注释信息,编辑之后保存即可。在点击BryanSaveCommentsInfo的那一刻,脚

    本生成了一份CommentsConfigFile.bryan注释配置文件并添加进你所在的工程,这个文件保存着你的注释配置信息。如图1所示。

    uid-29284763-id-4240896.html

    图1

    六,添加注释

    这时可以在代码中选中某个模块,或者函数,或者语句块,如图2所示,点击BryanAddSelBlockComments,则注释就添加进去了,如图3

    所示。在注释中,可以通过搜索BUG

    ID,直接追踪你修改的所有代码,也可以通过姓名搜索追踪你修改的所有功能。不仅方便查询,而且注释格式风格一样,一目了然,便于阅读,利于代码规范。

    uid-29284763-id-4240896.html

    图2

    uid-29284763-id-4240896.html

    图3

    七,结语:

    大家有兴趣,可以自定义各种各样有利于代码规范和提供工作效率的脚本。关于Source Insight和VC6.0,Visual Studio2008关联的用法,以后再做介绍。

    原文转自:http://blog.csdn.net/bryantech/article/details/6876955

    感谢 半童

    展开全文
  • 安全的c语言注释

    2019-10-10 16:52:05
    安全的c语言注释 在代码块外部添加/* */注释可能会发生错误,使用下面的方法能在逻辑上删除代码块,因此这样做更安全。 #if 0 statements #endif

    安全的c语言注释

    在代码块外部添加/* */注释可能会发生错误,使用下面的方法能在逻辑上删除代码块,因此这样做更安全。

    #if 0
     statements
    #endif 

     

    展开全文
  • 在修改模板和宏失败之后,利用vs的插件Vassist的功能之一:Snippet Editor来实现在c文件头添加注释 先来货: /***************************************************************************** * @author :...

     首先申明解决的问题

                   在修改模板和宏失败之后,利用vs的插件Vassist的功能之一:Snippet Editor来实现在c文件头添加注释

    先来货:

    /*****************************************************************************
    * @author :magic_han
    * @date : 2014/8/27 18:17
    * @version  : ver 1.0
    * @filename :dd.c
    * @filepath :C:\Users\he\Documents\Visual Studio 2010\Projects\数据结构2\数据结构2
    * @file content description: 
    *****************************************************************************/

             在vim上使用他人的.vimrc文件十分简单的完成了自己的头注释,想在vs上实现同样的功能,上网搜了一下,找到的方法有3种:

             (1):修改模板

             (2):使用vs的宏

             (3):使用vsvs的插件Vassist的功能之一:Snippet Editor来实现在c文件头添加注释

              第一种方法的实现遇到了麻烦,按照博客的指导,找到了模板路径,修改了模板内容,但在创建的时候没有达到想要的效果,仔细看了一下,麻痹了要针对不同的模板进行修改,鬼知道c语言对应的是那个模板,放弃

              第二种,有了前车之鉴,就发现网上已经写好的宏全是c#的,只能死马当活马医,但最后直接给我指明了文件格式不对,哎

              第三种,首先你的下一个visual assist 的插件,(我是盗的,逃..

                        在功能区找到 vassistx-tools-Edit VA sinppets

                        

                      先占坑,后再填

    转载于:https://www.cnblogs.com/dilidingzhi/p/3940097.html

    展开全文
  • 鉴于完成“/* */”需敲击键盘若干次,写了一个source insight的宏命令AddCComment通过ALT+C快捷键自动添加。 macro AddCComment() { hbuf = GetCurrentBuf() ln = GetBufLnCur (hbuf) sz = GetBufLine (hbuf, ln) ...
  • 我变了一个程序,读取一个txt文档内的数据,然后进行计算,当文档内只有纯数据的时候没问题,但我想给每个数据添加注释,这时候读取数据就出错了,注释的格式应该是怎样的 /*空气温度(K)*/ 250 /*温度升高系数...
  • C语言中的注释风格小结

    千次阅读 2017-04-03 22:18:34
    C语言中常用的注释风格有两种,一种是通过如下模式进行一段代码的注释: /* comment*/ 另一种是单行注释符号: // comment  学生时代的注释我一般是选用后者,那时候编码量十分有限,即使是简单的小段落注释...
  • 是从lda原始论文作者Blei的主页下载下来的C语言代码,在vs2013中可顺利运行,自己添加了详细注释
  • 日记内容参考C语言视频--Word ,添加颜色注释部分为自己认为重点!!! 一、 学习语法之前的提醒 1) C语言属于一门高级语言,其实,所有高级语言的基本语法组成部分都是一样的,只是表现形式不太一样 2)...
  • ------Java培训、...注释是在程序中添加的辅助内容,是写给程序员看的,为了方便程序员之间的交流。因此,良好的代码注释习惯可以提高程序的可读性 示例: // insert code here... printf("Hello, World!\n");
  • 作者:José M. Aguilar(西班牙语) 英文译者:Timm Martin ...中文译者:numenzq ...下面的13个技巧向你展示如何添加代码注释,这些技巧都很...为每个代码块添加注释,并在每一层使用统一的注释方法和风格。例如:
  • 求一元二次方程的解` #include<stdio.h> #include<math.h> int main(void) { float a,b,c; //方程ax+by+c=0的系数 float d; float x1,x2; //方程的解 scanf("%f%f%f",&... x1=(-b+sqrt(d))/(2*a
  • 添加了删除源代码中的空行 <code>#include <stdio.h> #define MAX_LENGTH 10000 /* C程序最多的字符个数 */ #define IN_MULTI_ANN 3 /* 当前处于多行注释 */ #define IN_SINGLE_ANN 2 /* 当前处于单行注释 ...
  • 巧用c语言风格的多行注释/**/

    万次阅读 2015-03-11 11:55:52
    很多编程语言都支持c语言风格的多行注释/**/,有时添加三个字符就可以达到类似#if 0 #endif 的效果
  • C语言的编写过程中为了能让其他人能看懂我们所写的代码添加必要的注释就显得尤为重要,于代码相比注释虽然在编译时会被编译器剔除不予执行,但书写不当的注释总会给我们带来一些令人头痛的Bug。  在C语言环境中...
  • c语言+windows API所编写的程序,从网上下得源码,自己理解后,重新编写了一下,并添加注释
  • C语言实现顺序表(注释非常详细了)

    千次阅读 多人点赞 2019-04-08 21:19:53
    最近在学数据结构,记录下我写的顺序表 #include<stdio.h> #include<stdlib.h> #define MAX_SIZE 255 //... Array : 初始化时添加的元素组成的数组 length : 初始化的顺序表的长度 */ void InitList(...
  • 根据用户输入的年月,打印出该月份的日历 #include<stdio.h> int main() { int a,b; int year,month,day,monthmax; printf("请输入年份:");... scanf("%d",&... if(month==1||month==3||month==5||month==7||...
  • 一 、C语言学习第一天 1.1 编写C语言代码:hello.c #include<stdio.h> #include<stdlib.h> //调用system系统函数需要...1、通过system()函数解决,在return 0之前,添加system(“pause”);函数调用 2、借助
  • (1)录入功能:能够向学生信息表中添加某位或某些学生信息。(2)查询功能:能够按照给定关键字“学号”或“姓名”,在学生信息表中查找符合条件的学生信息;(3)删除功能:能够按照学号删除某个同学信息。(4)...
  • 利用Source Insight宏语言脚本添加注释 一,前言  总所周知,在Windows开发环境中,一个几百兆C语言工程代码中,最好用的编辑工具当然就是Source Insight了。Source Insight(目前大多使用的版本为3.5)的Macro...
  • 关于建立动态链表,首先我们要知道要为新建节点动态申请储存单元,让指针变量指向这个新建节点,然后再将新建节点添加到链表中。在这里插入代码片 #include <stdio.h> #include <malloc.h> #define LEN ...
  • 在计算机专业书籍或者文章中,经常会用到代码,比如C语言代码,如何在代码中添加注释,用图片的形式展示,这种排版很常见,但是用latex怎么实现? 如图所示的效果,在latex排版中如何实现?完整代码如下 \...
  • matlab 添加多行注释

    2019-09-29 20:00:06
    就像c语言那样一下子注释掉(使之不执行)多行,而不是用%仅仅一行一行地注释。谢谢! [/quote]可以的,有些时候为了调试需要把其中几百行命令都转变为注释,一个一个加%太烦了。有几个方法:1)方法一选中你要加...
  • 写了这么多,其实还是不知道怎么去写注释。我们知道stm32库文件是符合库文件标准,那么我们就参照它的注释格式,来编写我们的注释文件。 为了能使代码能够被Doxygen识别,必须遵循Doxygen的书写规则。注释必须以/**...
  • 我在网上找到了一个在VC++6.0工具中添加注释快捷键的方法,VC++6.0是以VB为脚本来配置的。 首先,找到VC++6.0的安装路径,假设在:D:\Program Files (x86)\Microsoft Visual Studio 6.0,那么进入到Common\MSDev98\...
  • 一、C源文件和头文件 1. 配置映射按键 Source Insight 4.0内置多行注释和反注释功能。只需要配置一下键值映射即可。步骤如下: Options->Key Assignments,找到...按同样的步骤,添加注释快捷键,比如:Ctrl

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 385
精华内容 154
关键字:

c语言添加注释

c语言 订阅