C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C/C++报错printf was not declared in this scope

C/C++编译报错printf was not declared in this scope问题及解决

作者:Summer丶snow

这篇文章主要介绍了C/C++编译报错printf was not declared in this scope问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C C++编译报错printf was not declared in this scope

原因是这个 printf  函数需要头文件 "stdio",但是程序中没写,解决办法是在头文件中加入此头文件。

C语言加入

#include<stdio.h>

C++加入  

#include<cstdio>

C C++常见编译错误提示释义

1.iteration 16 invokes undefined behavior**

常见于对数组的操作,数组溢出错误。

数组定义为20个字节,而for循环判断条件应为<20

  uint8_t oldrelay[20]  = { 0U };
  for ( i = INDUCTOR_160nH; i <= 20; i++ )
    {
        oldrelay[ i ] = SET;
        relay[ i ] = RESET;
    }

2.warning: excess elements in array initializer**

数组元素比定义元素多

3.passing argument 1 of ‘sprintf’ discards ‘volatile’ qualifier from pointer target type**

加上强制转换

volatile uint8_t str[10];
sprintf((char*)str,“0”);

4.in expansion of macro

宏定义错误

在头文件中避免短宏定义,容易重复;例如

//#define SIZE 24
prop_name 参数为 SIZE
LV_STYLE_##prop_name

预编译为 LV_STYLE_24 出错

C C++编译错误整理

面这些是我自己在学习工作遇到的编译问题,以及可行的解决办法,整理一下,也方便自己及时查阅   ︿( ̄︶ ̄)︿︿( ̄︶ ̄)︿︿( ̄︶ ̄)︿

1.VC打开已存在的工程提示错误 C1083:缺少 *.pch

问题解决:

Project->c/c++,然后点击Category的下拉框,选择Precompiled Headers,

接着选择第二项,Automatic use of precompiled headers ,  编辑框里填 *.h  ,这样做的前提是你的 *.h 和 *.cpp 都已存在。

问题就解决了。

2.VS打开已存在工程,出现 error MSB3073

英文版处理办法: 

中文版处理办法: 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文