Notepad++怎样格式化C语言代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notepad++怎样格式化C语言代码?相关的知识,希望对你有一定的参考价值。

1、首先打开Notepad++软件,进入主界面。

2、打开菜单栏中的运行,点击其中的运行,或者按F5。弹出设置对话框。

3、在弹出的设置对话框中填准确信息: cmd /k gcc -o "D:\\study\\$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" & PAUSE & EXIT然后名字为编译c,快捷键自己设置。同样第二个:cmd /k "D:\\study\\$(NAME_PART)" & PAUSE & EXIT名字为运行c,快捷键自己设置。设置好以后关闭对话框即可。

参考技术A 1下载notepad++的代码格式化插件
http://code.google.com/p/nppastyle/downloads/list
2将下载的dll文件放在Notepad++\plugins目录下
3重启notepad++
4菜单为:“插件”->“NppAStyle”->“format code”
5选择格式化风格(ansi、java等)的菜单:“插件”->“NppAStyle”->”options“本回答被提问者和网友采纳
参考技术B 菜单-语言-C,然后就是C语言格式追问

这样做完全没有任何变化啊

追答

要么是你软件有问题,要么就是你的代码格式已经符合C语言格式了

C语言中怎样实现打印宏?(例如#define BBBBBBB 100000,然后输入为100000的时候打印出BBBBBB。

就是实现格式化输出MyPrintf()函数。

编译型语言c是不能打印“预编译宏”的,
代码在编译前的预编译步骤时,所有的宏都已经被数据代替。BBBBBB都被换成100000,
再编译时已经看不到宏。编译后更只剩机器指令和数据。

对于重复的常量,现代编译器通常会优化,自动归为一个数据。不需要从常量找宏
现代的IDE也会列出项目中可用的宏。找宏也简单。追问

难道真的没有一点办法去实现了?我就是想实现格式化打印,例如下面MyPrintf()函数一样。

追答

你为什么要把格式化和宏联系上?你口中的“格式化”是指什么?举个例子。

追问

就是我想设计这样一种函数void MyPrintf(char*,int);它包含两个参数,第一个是字符串参数,第二个是整形参数。字符串参数就是要输出“宏名”,整形参数是为了控制那个要输出的“宏名”。例如,#define TestInt 10000;MyPrintf("%s\n",10000)的输出结果就是TestInt。谢谢你耐心的回答。

追答

这么做属于误用了-拿高层的操控想法在写低层的C代码。等于要对编译型语言做其他高级语言才有的反射操作-想要“控制语法成分”本身。编译语言在编译后,所有的C语言的语法结构已经不存在(没有if 没有int 没有define),执行档在运行时runtime已经不具有宏信息。
你可以做的,学数据结构,建立10000和testint的对应关系。比如构建散列表,红黑树表,建立字典关系,可以简单查找。
或者,建立最简单的2个数组int k[]; char *v[];
k[0]=10000; v[0]="testint";
k[i]=222; v[i]="hello"
通过i值实现关联,实现一个最简单散列关系。。

参考技术A 用#ifdef ,然后再判断你输入的数,如果相等就打印。
Myprintf(char *test,long n)
#ifdef TESTINT
if(10000 == n)
printf("%s",test);
#endif
参考技术B 可以用一个数组存放定义的宏,这样,从数组中搜索到“100000”后,再根据索引搜索"BBBBBBB" 参考技术C 不能这样用。#define 的作用说白了就是替换。只有在你的代码中出现100000 才会自动替换为BBBBBBB 。 但是如果你的100000是存在变量里面,那么是不起任何作用的。因为它不能追着变量去替换。 参考技术D 没看明白。。。。。。

以上是关于Notepad++怎样格式化C语言代码?的主要内容,如果未能解决你的问题,请参考以下文章

notepad++设置C语言函数高亮

C语言:怎样输入一个字母,输出下一个字母

C语言中怎样实现打印宏?(例如#define BBBBBBB 100000,然后输入为100000的时候打印出BBBBBB。

怎样让C语言编写的程序生成exe文件运行时不显示cmd黑窗口

C语言设计出来的程序 的背景颜色怎样通过代码控制?

怎样用C语言打开文件夹(源代码)