C++ 转换成C时发生的一些错误

今天帮别人把一个C++的程序转成C程序,中间出了几个问题

1 首先是字符串的问题

char *str = "";
char *s = str;

注意这里用的char*只是定义了一个字符型的指针,其相互复制的时候,只是指针值的传递,如果指针值是函数中开辟的临时变量,那么就会出现问题。所以不能这么做。正确的做法是用字符数组

char strs[100];

数组要保证足够的空间,以免在复制的时候发生溢出现象。复制的时候也要使用strcpy函数。

2 发生错误 C2065

错误消息

“identifier”: 未声明的标识符

在可使用变量的类型前必须在声明中指定它。在可以使用函数前必须在声明或原型中指定该函数使用的参数。如下所示,就会出现这种错误

printf("what a bad error it is\n");
int a = 10;

但是如果调换顺序就会正确,这点正是C和C++的重要区别,在C中变量定义必须在作用域的最开头,C++就比较随心所欲,可以在使用的时候定义就行。

int a = 10;
printf("what a bad error it is\n");

C++ 转换成C时发生的一些错误

时间: 2024-10-01 12:04:25

C++ 转换成C时发生的一些错误的相关文章

多页Excel转换成PDF时如何保存为单独文件

通过ABBYY PDF Transformer+图文识别软件,使用PDF-XChange打印机将多页Excel工作簿转换成PDF文档(相关文章请参考ABBYY PDF Transformer+从MS Office中轻松创建PDF文件)的过程中,不少小伙伴发现Excel中的表格被保存成了单独文件,遇到这种情况该怎么办呢? 问题描述:通过ABBYY PDF Transformer+,使用PDF X-Change 5.0 for ABBYY将多页Excel工作簿转换成PDF时,Excel中的每个表格保

在向server发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的还有一端上无不论什么进程。

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错: 错误内容: 在向server发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的还有一端上无不论什么进程. 解决方法: 将SQL链接语句构造成例如以下: string strLink = @"server=.;datab

在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错: 错误内容: 在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程. 解决方法: 将SQL链接语句构造成如下: string strLink = @"server=.;database=Data

在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 -

作为总公司IT部门,自然承担着各个分公司的运维技术支持工作,由于公司的性质,分公司经常负责维护这各家官老爷的服务器,同时这些服务器也作为和官老爷数据之间的连接......此处省略一万字. 今天分公司就有个负责人发过来一段服务器的报错信息,大致如下" FireF|y゛ 2016/5/23 15:36:19日志名称:          Application来源:            XXXXX 日期:            2016/5/23 11:47:30事件 ID:         0任务

在向服务器发送请求时发生传输级错误。

遇到的问题和原帖差不多,不过是另一种状况,提出来,希望能帮助其他的小伙伴,俺是菜鸟,有不对的地方请多多包涵. 问题状况:恢复数据库的时候,将数据库给脱机 而后联机.再点击其他功能页面的时候,报错提示:在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程) 下面的解决方法,解决了问题. 在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程) 开始一直以

Error-ASP.NET:在从服务器接收结果时发生传输级错误。 (provider: Session Provider, error: 19 - 物理连接不可用)

ylbtech-Error-ASP.NET:在从服务器接收结果时发生传输级错误. (provider: Session Provider, error: 19 - 物理连接不可用)  1.返回顶部 1. “/”应用程序中的服务器错误. 在从服务器接收结果时发生传输级错误. (provider: Session Provider, error: 19 - 物理连接不可用) 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息

iOS 秒数转换成时间,时,分,秒

//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds = totalSeconds % 60;     int minutes = (totalSeconds / 60) % 60;     int hours = totalSeconds / 3600; return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds

浅谈ByteBuffer转换成byte[]时遇到的问题

有些时候我们要把ByteBuffer转换成byte[]来使用.于是很多时候会用以下代码来转换: ByteBuffer buf; .....(一些往buffer写数据的操作) byte[] bs= new byte[buf.capacity()]; //想把buf里所有的byte都拿出来 buf.get(bs); 感觉一切都正常,运行后会发现BufferUnderflowException的异常.这一切是因为buf中的position搞的鬼,position的位置会随着put操作而移动,然后这时候

解决win7远程桌面连接时发生身份验证错误的方法

远程桌面连接,是我们比较常用的一个功能了,但有时突然不能用了,以下是我遇到该问题,并解决该问题的方法.连接时报的是“发生身份验证错误,要求的函数不受支持”,解决之后细想一下,该问题好像是在我在电脑上安装过Oracle数据库后,才出现的该问题. 工具/原料 电脑 方法/步骤 话不多说,接下来直接看问题,如图所示远程桌面连接的时候报“发生身份验证错误,要求的函数不受支持”.   打开运行窗口,输入gpedit.msc确定.方法是为了打开“本地组策略编辑器”,你也可以通过其他方式打开“本地组策略编辑器