Including a header file from another directory

I have a main directory A with two sub directories B and C.

Directory B contains a header file structures.c:

#ifndef __STRUCTURES_H
#define __STRUCTURES_H
typedef struct __stud_ent__
    char name[20];
    int roll_num;

Directory C contains main.c code:

#include <structures.h>
int main()
    stud *value;
    value = malloc(sizeof(stud));
    free (value);
    printf("working \n");
    return 0;

But I get an error:

main.c:3:24: error: structures.h: No such file or directory
main.c: In function ‘main’:
main.c:6: error: ‘stud’ undeclared (first use in this function)
main.c:6: error: (Each undeclared identifier is reported only once
main.c:6: error: for each function it appears in.)
main.c:6: error: ‘value’ undeclared (first use in this function)

What is the correct way to include the structures.h file into main.c?


  • When referencing to header files relative to your c file you should use #include "path/to/header.h"

    The form #include <someheader.h> is only used for internal headers or for explicitly added directories (in gcc with the -I option).