检查结构是否存在? [C]

时间:2013-05-05 23:56:21

标签: objective-c c hash structure

背景:我在一个名为hash_table.c的文件中创建了一个Hashtable。这是我的头文件hash_table.h包含的部分内容:

/* hash_table.h */
#ifndef HASH_TABLE_H
#define HASH_TABLE_H

enum {BUCKET_COUNT = 1024};

struct Node {
    char *key;
    char *value;
    struct Node *next;
};

struct Table {
    struct Node *array[BUCKET_COUNT];
};

struct Table *TableCreate(void);   //creates the table
....

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我想在一个名为fdata.c的不同C文件中启动Hashtable。我不知道最好的办法是什么,但这就是我的想法:

#include "hash_table.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Table *t;  //initiate the variable

void testFunc()
{
    if(Hashtable does not exist) {  //How do I accomplish this? Is it possible?
        t = TableCreate(); //create the table
    else{
        continue...
    ....

显然,如果有一个更好的方式来启动这个表,我都是耳朵。 (这是我第一次使用带有C的结构)

感谢您的支持!

1 个答案:

答案 0 :(得分:1)

在应用启动时,全局指针将初始化为nil。您可以与nil进行比较,然后拨打TableCreate

或者,您可以在启动时创建表。 (例如,来自main,或者如果您实际上是在撰写目标C,application:didFinishLaunchingWithOptions或其他内容。)