Фон: Я создал Hashtable в файле hash_table.c. Вот часть того, что содержит мой файл заголовка hash_table.h:Проверьте, существует ли структура? [C]
/* 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
....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ Я хочу инициировать Hashtable в другом файле C, называемом fdata.c. Я не знаю, что лучший способ сделать это, но вот что я подумал:
#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)
Спасибо за поддержку!
В чем разница между использованием NULL и nil, потому что nil дает мне ошибку, в то время как NULL, похоже, работает. –
Нет большой разницы в значении. Объект C использует nil, обычный C использует NULL. Оба они равны нулю. – StilesCrisis
'nil' для объектов,' NULL' для не-объектов! См. [Этот ответ SO] (http://stackoverflow.com/questions/557582/null-vs-nil-in-objective-c) – HAS