背景:我在一个名为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的结构)
感谢您的支持!
答案 0 :(得分:1)
在应用启动时,全局指针将初始化为nil
。您可以与nil
进行比较,然后拨打TableCreate
。
或者,您可以在启动时创建表。 (例如,来自main
,或者如果您实际上是在撰写目标C,application:didFinishLaunchingWithOptions
或其他内容。)