Hide struct definition in static library.

Posted by BobMcLaury on Stack Overflow See other posts from Stack Overflow or by BobMcLaury
Published on 2010-05-24T07:10:03Z Indexed on 2010/05/24 7:11 UTC
Read the original article Hit count: 267

Filed under:
|
|
|

Hi, I need to provide a C static library to the client and need to be able to make a struct definition unavailable. On top of that I need to be able to execute code before the main at library initialization using a global variable.

Here's my code:

private.h


#ifndef PRIVATE_H
#define PRIVATE_H

typedef struct TEST test;

#endif


private.c (this should end up in a static library)

#include "private.h"
#include <stdio.h>

struct TEST
{
 TEST()
 {
  printf("Execute before main and have to be unavailable to the user.\n");
 }

 int a; // Can be modified by the user
 int b; // Can be modified by the user
 int c; // Can be modified by the user

} TEST;


main.c

test t;

int main( void )
{
 t.a = 0;
 t.b = 0;
 t.c = 0;

 return 0;
}

Obviously this code doesn't work... but show what I need to do... Anybody knows how to make this work? I google quite a bit but can't find an answer, any help would be greatly appreciated.

TIA!

© Stack Overflow or respective owner

Related posts about c

    Related posts about static