[clangd] add cmake files and guide for clangd usage
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -86,3 +86,5 @@ dkms.conf
|
||||
*.out
|
||||
*.app
|
||||
|
||||
.cache/
|
||||
build/
|
||||
|
||||
9
CMakeLists.txt
Normal file
9
CMakeLists.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(pracitces)
|
||||
|
||||
set(CMAKE_C_STANDARD 23)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
set(GLOBAL_INCLUDES ${CMAKE_SOURCE_DIR}/include)
|
||||
|
||||
add_subdirectory(practice-1)
|
||||
12
README.md
12
README.md
@@ -1,3 +1,13 @@
|
||||
# practices
|
||||
|
||||
Repository with code from practice sessions
|
||||
|
||||
# Clangd
|
||||
First, build the project to generate `compile_commands.json`:
|
||||
```bash
|
||||
cmake -B build
|
||||
```
|
||||
Then tell clangd where to find it by adding to `.clangd`:
|
||||
```yaml
|
||||
CompileFlags:
|
||||
CompilationDatabase: build
|
||||
```
|
||||
3
include/add.h
Normal file
3
include/add.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#include <stdint.h>
|
||||
|
||||
int32_t add(int32_t a, int32_t b);
|
||||
2
practice-1/CMakeLists.txt
Normal file
2
practice-1/CMakeLists.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
add_executable(practice-1 main.c)
|
||||
target_include_directories(practice-1 PRIVATE ${GLOBAL_INCLUDES})
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
struct my_perfect_float
|
||||
@@ -32,7 +32,6 @@ struct dm
|
||||
int32_t mod;
|
||||
};
|
||||
|
||||
|
||||
int divmod(int32_t x, int32_t y, struct dm* dm)
|
||||
{
|
||||
int aa = 2; // initialization
|
||||
@@ -47,7 +46,7 @@ int divmod(int32_t x, int32_t y, struct dm* dm)
|
||||
}
|
||||
|
||||
// x, y => /, %
|
||||
struct dm divmod(int32_t x, int32_t y, int *error_code)
|
||||
struct dm divmod(int32_t x, int32_t y, int* error_code)
|
||||
{
|
||||
int aa = 2; // initialization
|
||||
aa = 3; // assignment
|
||||
@@ -55,10 +54,10 @@ struct dm divmod(int32_t x, int32_t y, int *error_code)
|
||||
if (y == 0)
|
||||
{
|
||||
*error_code = 1;
|
||||
return (struct dm) { .div = 0, .mod = 0 };
|
||||
return (struct dm){ .div = 0, .mod = 0 };
|
||||
}
|
||||
//struct dm dm = { .div = x / y, .mod = x % y };
|
||||
//return dm;
|
||||
// struct dm dm = { .div = x / y, .mod = x % y };
|
||||
// return dm;
|
||||
return (struct dm){ .div = x / y, .mod = x % y }; // compound literal
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user