From 03e70af0b46c59dd2a29dff83d9af2da4ebb09b1 Mon Sep 17 00:00:00 2001 From: Kenryu Shibata Date: Tue, 25 Jun 2024 22:49:14 +0900 Subject: [PATCH] getting started --- .gitignore | 3 +++ Makefile | 33 +++++++++++++++++++++++++++++++++ include/calculate.h | 12 ++++++++++++ include/main.h | 8 ++++++++ src/calculate.c | 23 +++++++++++++++++++++++ src/main.c | 31 +++++++++++++++++++++++++++++++ 6 files changed, 110 insertions(+) create mode 100644 Makefile create mode 100644 include/calculate.h create mode 100644 include/main.h create mode 100644 src/calculate.c create mode 100644 src/main.c diff --git a/.gitignore b/.gitignore index cd531cf..8f814ab 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,6 @@ Module.symvers Mkfile.old dkms.conf + +# Directories +build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2bf555a --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +NAME=calculator-c-ncurses +VERSION=0.0.1 + +CC=gcc +AR=ar +RM=rm -f +CFLAGS=-Wall -Wextra -Wmissing-declarations -Wshadow -O2 +INC=-I./include +LIBS=-lncurses + +CALC_S=./src/main.c ./src/calculate.c +CALC_O=$(CALC_S:%.c=%.o) +CALC_T=calculator-c-ncurses + +.PHONY: all + +all: prepare $(CALC_T) + +$(CALC_T): $(CALC_O) + $(CC) $(INC) $(LIBS) -o ./build/$@ $^ +.c.o: + @echo $< + $(CC) $(CFLAGS) $(LIBS) $(INC) -c $< -o $@ + +$(CALC_O): $(CALC_S) + +prepare: + mkdir -p ./build/ + +.PHONY: clean + +clean: + $(RM) ./src/*.o diff --git a/include/calculate.h b/include/calculate.h new file mode 100644 index 0000000..0c28c47 --- /dev/null +++ b/include/calculate.h @@ -0,0 +1,12 @@ +#ifndef CALCULATE_H_ +#define CALCULATE_H_ + +int strlen(char* str); + +void strrev(char* str); + +int atoi(char* src, int target); + +float atof(char* src, float target); + +#endif diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000..4bc5a9f --- /dev/null +++ b/include/main.h @@ -0,0 +1,8 @@ +#ifndef MAIN_H_ +#define MAIN_H_ + +#include + +int main(int argc, char** argv); + +#endif diff --git a/src/calculate.c b/src/calculate.c new file mode 100644 index 0000000..ce84201 --- /dev/null +++ b/src/calculate.c @@ -0,0 +1,23 @@ +#include + +int strlen(char* str) { + int res = 0; + + while (str[res] != '\0') { + res += 1; + } + + return res; +} + +void strrev(char* str) { + return; +} + +int atoi(char* src, int target) { + return 0; +} + +float atof(char* src, float target) { + return 0; +} diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..d883f5a --- /dev/null +++ b/src/main.c @@ -0,0 +1,31 @@ +#include + +int main(int argc, char** argv) { + int scrHeight, scrWidth; + + int ch; + + initscr(); + noecho(); + keypad(stdscr, TRUE); + start_color(); + init_pair(1, COLOR_RED, COLOR_BLUE); + wbkgd(stdscr, COLOR_PAIR(1)); + + getmaxyx(stdscr, scrHeight, scrWidth); + + printw("Width: %d, Height: %d", scrWidth, scrHeight); + + refresh(); + + while (1) { + ch = getch(); + + if (ch == 'q') break; + } + + attrset(0); + endwin(); + + return 0; +}