add.h
#ifndef LTTC_ADD_H_
#define LTTC_ADD_H_
extern int addend;
extern int add(int *pz);
#endif
add.c
#include "add.h"
int add(int *pz)
{
if (pz) {
pz += addend; // fixed: use '*pz` instead
return 0;
}
else
return -1;
}
zr.c
#include <stdio.h>
#include <assert.h>
#include <unistd.h>
#include "add.h"
int addend = 1; // defintion
int main(int argc, char *argv[])
{
int zr = 0, res;
printf("argc=%d\n", argc);
if (argc > 1)
printf("1st parameter is %s\n",
argv[1]);
res = add(&zr);
pause();
assert(res == 0);
assert(zr == 1);
return 0;
}