/tags/ttn-post-libtool-1-4-3-upgrade/SWIG/Examples/php4/variables/example.c
C | 90 lines | 68 code | 15 blank | 7 comment | 2 complexity | 63b81d0ef0cc66b574470ab758ddcb00 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
1/* File : example.c */
2
3/* I'm a file containing some C global variables */
4
5#include <stdio.h>
6#include <stdlib.h>
7#include "example.h"
8
9int ivar = 0;
10short svar = 0;
11long lvar = 0;
12unsigned int uivar = 0;
13unsigned short usvar = 0;
14unsigned long ulvar = 0;
15signed char scvar = 0;
16unsigned char ucvar = 0;
17char cvar = 0;
18float fvar = 0;
19double dvar = 0;
20char *strvar = 0;
21const char *cstrvar = 0;
22int *iptrvar = 0;
23char name[256] = "Dave";
24char path[256] = "/home/beazley";
25
26
27/* Global variables involving a structure */
28Point *ptptr = 0;
29Point pt = { 10, 20 };
30
31/* A variable that we will make read-only in the interface */
32int status = 1;
33
34/* A debugging function to print out their values */
35
36void print_vars() {
37 printf("ivar = %d\n", ivar);
38 printf("svar = %d\n", svar);
39 printf("lvar = %ld\n", lvar);
40 printf("uivar = %u\n", uivar);
41 printf("usvar = %u\n", usvar);
42 printf("ulvar = %lu\n", ulvar);
43 printf("scvar = %d\n", scvar);
44 printf("ucvar = %u\n", ucvar);
45 printf("fvar = %g\n", fvar);
46 printf("dvar = %g\n", dvar);
47 printf("cvar = %c\n", cvar);
48 printf("strvar = %s\n", strvar ? strvar : "(null)");
49 printf("cstrvar = %s\n", cstrvar ? cstrvar : "(null)");
50 printf("iptrvar = %x\n", iptrvar);
51 printf("name = %s\n", name);
52 printf("ptptr = %x (%d, %d)\n", ptptr, ptptr ? ptptr->x : 0, ptptr ? ptptr->y : 0);
53 printf("pt = (%d, %d)\n", pt.x, pt.y);
54 printf("status = %d\n", status);
55}
56
57/* A function to create an integer (to test iptrvar) */
58
59int *new_int(int value) {
60 int *ip = (int *) malloc(sizeof(int));
61 *ip = value;
62 return ip;
63}
64
65int value_int(int *value) {
66 return *value;
67}
68
69/* A function to create a point */
70
71Point *new_Point(int x, int y) {
72 Point *p = (Point *) malloc(sizeof(Point));
73 p->x = x;
74 p->y = y;
75 return p;
76}
77
78char * Point_print(Point *p) {
79 static char buffer[256];
80 if (p) {
81 sprintf(buffer,"(%d,%d)", p->x,p->y);
82 } else {
83 sprintf(buffer,"null");
84 }
85 return buffer;
86}
87
88void pt_print() {
89 printf("(%d, %d)\n", pt.x, pt.y);
90}