当前位置:首页 » 编程软件 » c语言条件编译出错怎么办

c语言条件编译出错怎么办

发布时间: 2022-09-23 03:28:04

❶ C语言中的条件编译 #if define(宏名称)为什么错误了

预编译指令格式错误。
#if define (IBMPC)应改为#ifdef IBMPC
这种结构是为了防止头文件嵌套包含。一般的用法是
#ifndef _IBMPC_H
#define _IBMPC_H
#include"ibmpc.h"
....
#endif

❷ C语言的条件编译为什么不能正常运行之三

# include x 3
改为
#define x 3

即使做了上面的修改,程序仍然是错误的,

修改后的程序中,#ifndef x 为假,所以不执行int x=1,如此后面的x=2就是个非法表达式(此时x是个右值,而非左值,所以不能为其赋值)。

❸ C语言条件编译程序问题

一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)。条件编译语句排版时,需考虑以下三种位置:
1)条件编译语句块与函数定义体之间不存在相互嵌套(主要在(.h)文件中);
2)条件编译语句块嵌套在函数体之外(主要在(.c)文件中);
3)条件编译语句嵌套在函数体内 (主要在(.c)文件中)。条件编译指令将决定哪些代码被编译,而哪些是不被编译的。可根据表达式的值或某个特定宏是否被定义来确定编译条件。

❹ C语言条件编译出错

查查你的编译器的条件编译语句定义中有没有#error语句

❺ C语言编译报错

#include <stdio.h>
#include <string.h>
int main()
{

int gg(int i);
int i;
while(1){
i=0;
printf(" 1.查看历史日程表\n");
printf(" 2.输入新的日程表\n");
printf(" 3.查看已完成的日程表\n");
printf(" 4.查看未完成的日程表\n");
printf(" 5.退出登录\n");
printf(" 请选择相应序号: ");
scanf("%d",&i);
if(i==5){
break;
}
gg(i);
printf("\n");
printf("\n");
printf("\n");
}
}
int gg(int i){
int aa();
int bb();
int cc();
int dd();

switch(i){
case 1:
aa();break;
case 2:
bb();break;
case 3:
cc();break;
case 4:
dd();break;
}
}
int aa(){
FILE*fp;
int length=1000;
char str[1001];
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,length,fp)!=NULL){
printf("%s",str);}
return 1;

fclose(fp);
}
int bb(){
FILE*fp;
char str[400];
printf("内容如下:\n");
scanf("%s",str);
if((fp=fopen("11s.txt","a+"))==NULL){
printf("文件不存在");
return 0;
}

fputs("\n",fp);
fputs(str,fp);
printf("加入成功");
fclose(fp);
return 1;
}
int cc(){
FILE*fp;
int length=1000;
char str[1001];
printf("内容如下:\n");
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,length,fp)!=NULL){
if(strstr(str,"已完成")!=NULL){
printf("%s",str);
}
}
fclose(fp);
return 1;
}
int dd(){
FILE*fp;
int lenght=1000;
char str[1001];
printf("内容如下:\n");
if((fp=fopen("11s.txt","r"))==NULL){
printf("无文件");
return 0;
}
while(fgets(str,lenght,fp)!=NULL){
if(strstr(str,"未完成")!=NULL){
printf("%s",str);
}
}
fclose(fp);
return 1;
}

❻ C语言编译报错大部分都是先前定义在此,要怎么修改

自己要学会换一个思路来解决问题,看一看“标准”的头文件是怎么写的,比如stdio.h:
#pragma once
#ifndef _INC_STDIO // include guard for 3rd party interop
#define _INC_STDIO
// ....
#endif // _INC_STDIO
这样写可以保证这个头文件只会被编译一次。除了声明、模板类,一般不在头文件.h里边写实现代码。另外还要学会使用extern这个关键字

❼ C语言 条件编译问题

#include <stdio.h>
#include <stdlib.h>
#define CHANGE 0 //1表示翻译,0表示不翻译

int main(void)
{
char a[100];
int i;
char c;

printf("Please input the string\n");

for (i = 0; i < 100; i++)
{
scanf("%c", &a[i]);
if (a[i]== '\n')
{
a[i] = '\0';
break;
}
}

for (i = 0; i < 100;a[i] = c,i++)
{
#ifdef CHANGE 1
{
if(a[i]!= '\0')
{
c = a[i];
if (c == 'z')
{
c = 'a';
continue;
}
c = c -32;
}
else break;//你要加上跳出语句
}
//#else{};
#endif
}

printf("\n");

for (i = 0; i < 100; i++)
{
if (a[i]== '\0')
break;
printf("%c", a[i]);
}

system("pause");
return 0;
}
你调试看一下,当a[i]=='\0'的时候它i仍然在自加,根本就没有跳出循环,所以后面出现的是乱码,所以你要加上个break跳出语句!还有你的那个小写转换为大写的时候不对,应该是减去32,大写转换为小写的时候是加上32,理解了的话,别忘了加分哦!祝你好运!

❽ C语言里的条件编译问题

你看看你的工程配置里面有没有预定义,一般像这种系统配置都是在创建工程的时候自动预定义了。如果没有,那就是真没有,说明这段代码在你选择的这款芯片上就是不需要。

热点内容
上传网页用什么服务器 发布:2024-05-03 08:57:08 浏览:909
掌握ftp服务器的配置与管理 发布:2024-05-03 08:06:58 浏览:766
服务器搭建的函数 发布:2024-05-03 07:54:44 浏览:815
php包含数组 发布:2024-05-03 07:53:51 浏览:702
短暂记忆存储信息是有限的 发布:2024-05-03 07:48:14 浏览:537
java集合对象 发布:2024-05-03 07:32:13 浏览:916
苹果自带脚本 发布:2024-05-03 07:16:04 浏览:569
商城导航源码 发布:2024-05-03 07:14:15 浏览:552
shell脚本日志输出 发布:2024-05-03 06:31:04 浏览:713
服务器快捷方式是什么意思 发布:2024-05-03 06:28:18 浏览:108