代码调试时积累的一些知识

1.找不到头文件#include<dirent.h>

从linux移植到windows中时会出现该问题,需要在网上下载dirent.h,加入到vs的include目录中去。

D:\Program Files\vs\VC\include

说明:

(1)DIR是在目录项格式头文件dirent.h中定义的,它表示一个目录流类型。

DIR *opendir(const char *name);

opendir函数打开一个与给定的目录名name相对应的目录流,并返回一个指向该目录流的指针。打开后,该目录流指向了目录中的第一个目录项。

(2)struct dirent *readdir(DIR *dir);

readdir函数返回一个指向dirent结构体的指针,该结构体代表了由dir指向的目录流中的下一个目录项;如果读到end-of-file或者出现了错误,那么返回NULL。

void detect_piclib(void)
{
DIR *dir1,*dir2; 
struct dirent *ptr1,*ptr2;
dir1=opendir("//usr//local//apache2//example//");
 dir2=opendir("//usr//local//apache2//char_txt//");
while((ptr1=readdir(dir1))!=NULL)  
{
 if(ptr1->d_name[0]=='.')
	  continue;
}
    while((ptr2=readdir(dir2))!=NULL)
	 {
	  if(ptr2->d_name[0]=='.')
	  continue;
	 }

}
(3) int closedir(DIR *dir);

closedir函数关闭与指针dir相联系的目录流。关闭后,目录流描述符dir不再可用。

closedir函数,成功时返回0;失败是返回-1,并设置相应的错误代码errno。

(4)

#include <unistd.h>

int chdir(const char *path); 
int fchdir(int fd);

chdir函数改变当前工作目录为path指定的目录。

fchdir函数与chdir功能一样,唯一的区别是fchdir所要改变成的工作目录由打开的文件描述符指定。

RETURN VALUE

成功,返回0;失败,返回-1,并设置相应的错误代码errno。

2.找不到头文件mysql.h

普通安装程序里面没有include,重新装,选择complete安装方式。

3.卸载及安装Mysql的问题(准确性受质疑)

http://www.cnblogs.com/dapeng111/archive/2012/11/21/MySQL.html

在windows下停止mysql服务:sc delete mysql

regedit打开注册表

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL
中的mysql文件夹都删掉。
删掉windows里面的my.in。
这一条是很关键的 

  C:\Documents and Settings\All Users\Application Data\MySQL 

  这里还有MySQL的文件,必须要删除
 

  注意:Application Data这个文件夹是隐藏的,需要打开个文件夹选择菜单栏 工具→文件夹选项→查看→隐藏文件和文件夹 一项选上 显示所有文件和文件夹 确定 
重启
 



(1)extern声明全局变量

全局变量(外部变量)是在函数的外部定义的,它的作用域为从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为本文件中各个函数所引用。编译时将全局变量分配在静态存储区。 

有时需要用extern来声明全局变量,以扩展全局变量的作用域。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终了。如果在定义点之前的函数想引用该全局变量,则应该在引用之前用关键字extern对该变量作外部变量声明,表示该变量是一个将在下面定义的全局变量。有了此声明,就可以从声明处起,合法地引用该全局变量,这种声明称为提前引用声明。

如果一个程序包含两个文件,在两个文件中都要用到同一个外部变量num,不能分别在两个文件中各自定义一个外部变量num。正确的做法是:在任一个文件中定义外部变量num,而在另一文件中用extern对num作外部变量声明。即 

  extern int num; 

  编译系统由此知道num是一个已在别处定义的外部变量,它先在本文件中找有无外部变量num,如果有,则将其作用域扩展到本行开始(如上节所述),如果本文件中无此外部变量,则在程序连接时从其他文件中找有无外部变量num,如果有,则把在另一文件中定义的外部变量num的作用域扩展到本文件,在本文件中可以合法地引用该外部变量num。  


(2)

一)strcmp函数  

         strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:  

                 i=strcmp(字符串,字符串);

         其中,字符串1、字符串2均可为字符串常量或变量;i   是用于存放比较结果的整型变量。比较结果是这样规定的:  

①字符串1小于字符串2,strcmp函数返回一个负值;

②字符串1等于字符串2,strcmp函数返回零;

③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是如何比较的呢?来看一个例子。

         实际上,字符串的比较是比较字符串中各对字符的ASCII码。首先比较两个串的第一个字符,若不相等,则停止比较并得出大于或小于的结果;如果相等就接着 比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"disk"和"disks"   那样,   前四个字符都一样,   然后比较第 五个字符,   前一个字符串"disk"只剩下结束符'/0',后一个字符串"disks"剩下's','/0'的ASCII码小于's'的ASCII 码,所以得出了结果。因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。

注意:字符串是数组类型而非简单类型,不能用关系运算进行大小比较。  

         if("ABC">"DEF")   /*错误的字符串比较*/

         if(strcmp("ABC","DEF")   /*正确的字符串比较*/

(二)strcpy函数  

         strcpy函数用于实现两个字符串的拷贝。一般形式是:  

                 strcpy(字符中1,字符串2)

         其中,字符串1必须是字符串变量,而不能是字符串常量。strcpy函数把字符串2的内容完全复制到字符串1中,而不管字符串1中原先存放的是什么。复制后,字符串2保持不变。  

例:    

         注意,由于字符串是数组类型,所以两个字符串复制不通过赋值运算进行。  

         t=s;   /*错误的字符串复制*/

         strcpy(t,s);   /*正确的字符串复制*/

(3)

:printf、sprintf与fprintf 的用法区分

1.printf 是和标准输出文件(stdout)关联的,fprintf 则没有这个限制.
 
2.fprintf是用于文件操作的,原型是int fprintf( FILE *stream, const char *format [, argument ]...);

3.sprintf是格式化输出到一个字符串,fprintf是格式化输出到一个stream,通常是到文件。
 
int   fprintf(   FILE   *stream,   const   char   *format   [,   argument   ]...);  
int   sprintf(   char   *buffer,   const   char   *format   [,  argument]   ...   );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在进行atom代码调试,首先需要确保安装了相应的调试插件,比如debugger或者node-debugger。然后,打开需要调试代码文件,可以在需要设置断点的行号上点击添加断点,或者直接在代码中使用debugger关键字来设置断点。接着,通过菜单栏或快捷键启动调试模式,选择对应的调试配置文件,比如Node.js或Chrome浏览器。启动调试后,可以使用各种调试工具来观察变量的值、执行代码、单步调试等。在调试过程中,可以根据需要添加、移除或者禁用断点,以便更精准地定位问题。一旦发现问题,可以通过观察变量的值或者代码执行路径来找到原因,并进行相应的修改。调试完成后,记得保存代码并关闭调试模式,以确保代码的稳定性和可靠性。 值得注意的是,atom代码调试记录需要及记录下来,可以使用注释、文档或者专门的调试记录文件来记录问题、解决方案和调试过程中的心得体会。这些记录对于今后遇到类似问题能够提供宝贵的经验和参考,也有助于团队内部知识共享和团队合作。另外,及分享调试记录也有利于帮助其他人解决类似问题,提高团队整体的开发效率和质量。 总之,atom代码调试记录不仅是解决问题的有力工具,也是提高开发效率和团队合作的重要手段。通过不断积累和分享调试记录,可以不断提升团队的开发水平和整体实力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值