为什么在程序中主要是必要的
发布时间:2020-12-16 06:46:47 所属栏目:百科 来源:网络整理
导读:我制作了一个仍在开发中的程序.我没有故意在我的程序中声明main.因为我正在开发一个用于制作图形和其他算法的库,我将在我的程序中使用.在C中开发这样一个库的目的是解决书中给出的问题.算法Thomas H Coreman 如果有人想看,这是代码. #includestdio.h#include
|
我制作了一个仍在开发中的程序.我没有故意在我的程序中声明main.因为我正在开发一个用于制作图形和其他算法的库,我将在我的程序中使用.在C中开发这样一个库的目的是解决书中给出的问题.算法Thomas H Coreman
如果有人想看,这是代码. #include<stdio.h>
#include<stdlib.h>
#define GREY 1
#define BLACK 0
#define WHITE 2
typedef struct node *graph;
graph cnode(int data); //cnode is to create a node for graph
void cgraph(void);
struct node {
int data,color;
struct node *LEFT,*RIGHT,*TOP,*DOWN;
};
graph root = NULL;
void cgraph(void)
{
int n,choice,dir,count;
choice = 1;
count = 1;
graph priv,temp;
printf("Printf we are making a graph the first is root noden");
while (choice == 1) {
count++;
if (count == 1) {
printf("This is going to be root node n");
scanf("%d",&n);
root = cnode(n);
count--;
priv = root;
} //ending if
else {
printf
("Enter direction you want to go LEFT 1 RIGHT 2 TOP 3 DOWN 4n");
scanf("%d",&dir);
printf("Enter the data for graph noden");
scanf("%d",&n);
temp = cnode(n);
if (dir == 1) {
priv->LEFT = temp;
}
if (dir == 2) {
priv->RIGHT = temp;
}
if (dir == 3) {
priv->TOP = temp;
}
if (dir == 4) {
priv->DOWN = temp;
}
priv = temp;
} //ending else
printf
("Enter 1 to continue adding nodes to graph any thing else would take you outn");
scanf("%d",&choice);
} //ending while
} //ending main
graph cnode(int data)
{
graph temp = (graph) malloc(sizeof(graph));
temp->data = data;
temp->LEFT = NULL;
temp->RIGHT = NULL;
temp->TOP = NULL;
temp->DOWN = NULL;
temp->color = -1;
return temp;
}
当我编译上面的程序时,我得到了以下错误. cc graph.c /usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2: ld returned 1 exit status 这个错误意味着什么,我为什么要在我的程序中声明main? 解决方法
为什么?因为标准这样说(大多数).
托管C环境需要主要功能(允许独立环境以他们喜欢的方式启动). 如果您正在开发一个库,那么您不需要为库本身使用main,但是如果没有库,您将无法将其转换为可执行文件(除了使用非便携式技巧).而且,至少,你应该有一个测试套件. 换句话说,您的库应该有一个大型测试套件,它由一个主函数控制(很可能是在一个单独的源文件或文件中),这样您就可以测试任何新工作和回归测试,以确保它没有填满旧作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
