#c
Вопрос:
Может ли кто-нибудь сообщить мне, почему читаемые и записываемые части моей структуры не работают, но все остальные работают? Ошибка, которую я получаю, находится в названии
struct directory_entry{ unsigned char status; unsigned char first_block; unsigned short size; unsigned short byte_offset; unsigned short readable; unsigned short writeable; char name[FILENAME_LENGTH 1]; }; struct file_block *blocks; struct directory_entry *directory;
Например, никакие другие биты не выдают ошибок, кроме читаемых и записываемых в этом сегменте
unsigned int tfs_create( char *name ){ unsigned int file_descriptor; if( !tfs_check_valid_name( name ) ) return( 0 ); if( tfs_map_name_to_fd( name ) != 0 ) return( 0 ); file_descriptor = tfs_new_directory_entry(); if( file_descriptor == 0 ) return( 0 ); directory[file_descriptor].status = OPEN; directory[file_descriptor].first_block = 0; directory[file_descriptor].size = 0; directory[file_descriptor].byte_offset = 0; directory[file_descriptor].readable = 0; directory[file_descriptor].writeable = 0; strcpy( directory[file_descriptor].name, name ); return( file_descriptor ); }
Комментарии:
1. Какое сообщение об ошибке вы получаете? Является ли один из заголовков, который вы используете вместе с этим, определяющим макросы, подобные объектам, для
readable
иwriteable
так, чтобы там, где, по вашему мнению, у вас естьdirectory[file_descriptor].readable
препроцессор, он преобразовывал его во что-то совсем другое, напримерdirectory[file_descriptor].(3)
? Попробуйте запустить компилятор с флагом-E
или-P
, чтобы сохранить предварительно обработанный вывод. Вы можете прийти в ужас от того, что обнаружите!