RicardasSim icon

extern array

RicardasSim | PRO | 01/21/20 08:05:56 PM UTC | 0 ⭐ | 642 👁️ | Never ⏰ | []
C |

970 B

|

None

|

0 👍

/

0 👎

/*
-std=c99 -Wall -Wextra -Wpedantic -Wshadow
*/
 
/*
 test_inc.h
------------
*/
 
#ifndef TEST_INC_H
#define TEST_INC_H
 
#define ARR_1_SIZE 10
#define ARR_2_SIZE 20
 
//error: invalid application of ‘sizeof’ to incomplete type ‘int[]’
//extern int arr_1[];
 
extern int arr_1[ARR_1_SIZE];
extern int arr_2[ARR_2_SIZE];
 
int testFnc();
 
#endif
 
/*
 main.c
--------
*/
 
#include <stdio.h>
#include <stdlib.h>
#include "test_inc.h"
 
int arr_1[ARR_1_SIZE];
int arr_2[ARR_2_SIZE];
 
int main()
{
 
    printf("1: %zu\n", sizeof arr_1  / sizeof *arr_1 );
    printf("2: %zu\n", sizeof arr_2  / sizeof *arr_2 );
 
    testFnc();
 
    return 0;
}
 
/*
 file1.c
---------
*/
 
#include <stdio.h>
#include <stdlib.h>
#include "test_inc.h"
 
int testFnc()
{
 
    printf("1a: %zu\n", sizeof arr_1  / sizeof *arr_1 );
    printf("2a: %zu\n", sizeof arr_2  / sizeof *arr_2 );
 
    return 0;
}
 
/*
output:
 
1: 10
2: 20
1a: 10
2a: 20
 
*/

Comments