加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么在程序中主要是必要的

发布时间: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,但是如果没有库,您将无法将其转换为可执行文件(除了使用非便携式技巧).而且,至少,你应该有一个测试套件.

换句话说,您的库应该有一个大型测试套件,它由一个主函数控制(很可能是在一个单独的源文件或文件中),这样您就可以测试任何新工作和回归测试,以确保它没有填满旧作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读