diff --git a/datatop/src/Android.mk b/datatop/src/Android.mk
index 51d062a..6b93c9f 100644
--- a/datatop/src/Android.mk
+++ b/datatop/src/Android.mk
@@ -18,7 +18,7 @@
 LOCAL_SRC_FILES += datatop_sys_snap.c
 LOCAL_SRC_FILES += datatop_value_only_poll.c
 
-LOCAL_CFLAGS := -Wall -Wextra -Werror -pedantic
+LOCAL_CFLAGS := -Wall -Wextra -Werror -pedantic -std=c99
 LOCAL_CFLAGS += -DVERSION="\"1.0.4"\"
 LOCAL_CFLAGS += -DHAVE_STRL_FUNCTIONS
 LOCAL_CFLAGS += -D _BSD_SOURCE
diff --git a/datatop/src/datatop_helpers.c b/datatop/src/datatop_helpers.c
index 55fbb09..325b824 100644
--- a/datatop/src/datatop_helpers.c
+++ b/datatop/src/datatop_helpers.c
@@ -38,6 +38,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <time.h>
 #include <sys/time.h>
 #include <string.h>
@@ -84,11 +85,11 @@
 {
 	switch (dp->type) {
 	case DTOP_ULONG:
-		if (fprintf(fw, "%lu", dp->data.d_ulong) < 0)
+		if (fprintf(fw, "%"PRIu64, dp->data.d_ulong) < 0)
 			return FILE_ERROR;
 	break;
 	case DTOP_LONG:
-		if (fprintf(fw, "%ld", dp->data.d_long) < 0)
+		if (fprintf(fw, "%"PRId64, dp->data.d_long) < 0)
 			return FILE_ERROR;
 	break;
 	case DTOP_UINT:
@@ -191,11 +192,7 @@
 			- (int64_t)dp.initial_data.d_ulong;
 		if (int64 != 0) {
 			dtop_format_text_for_snapshot(dpset, dp);
-			#if (__SIZEOF_LONG__ == 4)
-				printf("%lld\n", int64);
-			#elif (__SIZEOF_LONG__ == 8)
-				printf("%ld\n", int64);
-			#endif
+			printf("%"PRId64"\n", int64);
 		}
 	break;
 
@@ -205,11 +202,7 @@
 			- (int64_t)dp.initial_data.d_long;
 		if (int64 != 0) {
 			dtop_format_text_for_snapshot(dpset, dp);
-			#if (__SIZEOF_LONG__ == 4)
-				printf("%lld\n", int64);
-			#elif (__SIZEOF_LONG__ == 8)
-				printf("%ld\n", int64);
-			#endif
+			printf("%"PRId64"\n", int64);
 		}
 	break;
 
@@ -218,11 +211,7 @@
 			- (int64_t)dp.initial_data.d_uint;
 		if (int64 != 0) {
 			dtop_format_text_for_snapshot(dpset, dp);
-			#if (__SIZEOF_LONG__ == 4)
-				printf("%lld\n", int64);
-			#elif (__SIZEOF_LONG__ == 8)
-				printf("%ld\n", int64);
-			#endif
+			printf("%"PRId64"\n", int64);
 		}
 	break;
 
@@ -231,11 +220,7 @@
 			- (int64_t)dp.initial_data.d_int;
 		if (int64 != 0) {
 			dtop_format_text_for_snapshot(dpset, dp);
-			#if (__SIZEOF_LONG__ == 4)
-				printf("%lld\n", int64);
-			#elif (__SIZEOF_LONG__ == 8)
-				printf("%ld\n", int64);
-			#endif
+			printf("%"PRId64"\n", int64);
 		}
 	break;
 	}
@@ -332,14 +317,14 @@
 {
 	switch (dp->type) {
 	case DTOP_ULONG:
-		sscanf(str, "%lu", &(dp->data.d_ulong));
+		sscanf(str, "%"PRIu64, &(dp->data.d_ulong));
 		if (dp->initial_data_populated == NOT_POPULATED) {
 			dp->initial_data.d_ulong = dp->data.d_ulong;
 			dp->initial_data_populated = POPULATED;
 		}
 	break;
 	case DTOP_LONG:
-		sscanf(str, "%ld", &(dp->data.d_long));
+		sscanf(str, "%"PRId64, &(dp->data.d_long));
 		if (dp->initial_data_populated == NOT_POPULATED) {
 			dp->initial_data.d_long = dp->data.d_long;
 			dp->initial_data_populated = POPULATED;
diff --git a/datatop/src/datatop_meminfo_file_poll.c b/datatop/src/datatop_meminfo_file_poll.c
index bef1c5d..078b825 100644
--- a/datatop/src/datatop_meminfo_file_poll.c
+++ b/datatop/src/datatop_meminfo_file_poll.c
@@ -36,8 +36,10 @@
  */
 
 #include <stdio.h>
+#include <stdint.h>
 #include <string.h>
 #include <stdlib.h>
+#include <inttypes.h>
 #include "datatop_interface.h"
 #include "datatop_fileops.h"
 #include "datatop_str.h"
@@ -142,7 +144,7 @@
 	for (j = 0; j < dpg->data_points_len; j++) {
 		i = dt_find_dict_idx(dpg->data_points[j].name, &dict);
 		if (i >= 0 && i < dict.max) {
-			sscanf(dict.val[i], "%lu",
+			sscanf(dict.val[i], "%" PRIu64,
 			       &(dpg->data_points[i].data.d_ulong));
 			dpg->data_points[i].data.d_ulong *= 1024;
 			if (dpg->data_points[i].
