मैं एक साधारण लिंक्ड सूची संरचना बनाने के लिए दो .c स्रोत फ़ाइलों में उपयोग की जाने वाली संरचना बनाने की कोशिश कर रहा हूं। मैंने सोचा कि यह हेडर फ़ाइल में एक स्ट्रक्चर बनाने के लिए समय बचाएगा, हालांकि, मुझे 'पहले त्रुटि * त्रुटि' मिलती है।सी हेडर फ़ाइल (.h) में स्वयं-रेफरेंसियल structs को परिभाषित करना?
/*
* Structures.h
*
* Created on: Dec 17, 2011
* Author: timgreene
*/
#ifndef STRUCTURES_H_
#define STRUCTURES_H_
typedef struct list_struct {
int data;
struct list_struct* next;
struct list_struct* prev;
} list;
#endif /* STRUCTURES_H_ */
संपादित करें::
इस कोड मैं का उपयोग कर रहा है मैं मूल रूप से एक विस्तार है कि है, मैं वास्तव में XMOS toolchain से XCC साथ संकलन कर रहा हूँ छोड़ किया था। मुझे अभी भी समझ में नहीं आता है कि .h
फ़ाइल सिंटैक्स में कोई अंतर आएगा।
क्या यह एक संकलन ध्वज हो सकता है जिसका मैं उपयोग कर रहा हूं?
struct list_struct;
typedef struct list_struct {
int data;
struct list_struct* next;
struct list_struct* prev;
} list;
शायद आपके संकलक का अपना परिभाषा के बीच में पहचानकर्ता को नहीं पहचानता है, मैं:
xcc -O0 -g -Wall -c -MMD -MP -MF"filter.d" -MT"filter.d filter.o " -target=XC-1A -o filter.o "../filter.xc"
In file included from ../filter.xc:15:
Structures.h:13: error: parse error before '*' token
Structures.h:14: error: parse error before '*' token
Structures.h:15: error: parse error before '}' token
आपका कोड मेरे लिए ठीक संकलित करता है। (जीसीसी 4.5)। – Owen
ध्यान दें कि अंडरस्कोर "_" से शुरू होने वाले पहचानकर्ता आरक्षित हैं, और इनका उपयोग नहीं किया जाना चाहिए। –
आपका कोड सही है; त्रुटि कहीं और है। –