소스 검색

fix warnings

xuqiang 11 달 전
부모
커밋
7001e27812
4개의 변경된 파일295개의 추가작업 그리고 295개의 파일을 삭제
  1. 2 2
      README.md
  2. 2 2
      examples/example.c
  3. 153 153
      src/ringbuffer.c
  4. 138 138
      src/ringbuffer.h

+ 2 - 2
README.md

@@ -1,2 +1,2 @@
-# ringbuffer
-C语言实现的环形缓冲区
+# ringbuffer
+C语言实现的环形缓冲区

+ 2 - 2
examples/example.c

@@ -19,7 +19,7 @@ int main(int argc, char *argv[])
         buffer[i] = i;
     }
 
-    ringbuffer_append(&ringbuffer, buffer, 128);
+    ringbuffer_append(&ringbuffer, (data_t*)buffer, 128);
     data_t data;
     int ret = ringbuffer_data(ringbuffer, &data, 127);
     if(ret == 0)
@@ -35,7 +35,7 @@ int main(int argc, char *argv[])
 
     ringbuffer_print(ringbuffer, true);
 
-    char temp[512];
+    data_t temp[512];
     int read_size = ringbuffer_read(ringbuffer, temp, 18);
     printf("read size: %d\n", read_size);
 

+ 153 - 153
src/ringbuffer.c

@@ -1,153 +1,153 @@
-/**
- * @file    ringbuffer.c
- * @brief   ringbuffer source file.
- *
- * @details 
- *
- * @author  jlgwch
- * @date    2023-10-16
- * @version 1.0
- *
- * @history
- *  - 2023-10-16: jlgwch - Created the file.
- *
- * @copyright Copyright (c) 2023~ jlgwch. All rights reserved.
- */
-
-#include "ringbuffer.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-bool ringbuffer_init(ringbuffer_st* ringbuffer, int size)
-{
-    ringbuffer->head = 0;
-    ringbuffer->tail = 0;
-    ringbuffer->buffer_size = 0;
-    ringbuffer->full_size = size;
-    ringbuffer->data = (data_t*)malloc(size);
-    if(ringbuffer->data == NULL)
-        return false;
-    return true;
-}
-
-void ringbuffer_release(ringbuffer_st* ringbuffer)
-{
-    if(ringbuffer->data)
-        free(ringbuffer->data);
-    ringbuffer->head = 0;
-    ringbuffer->tail = 0;
-    ringbuffer->buffer_size = 0;
-    ringbuffer->full_size = 0;
-}
-
-int ringbuffer_append(ringbuffer_st* ringbuffer, const data_t* buffer, int size)
-{
-    int len = ringbuffer->full_size - ringbuffer->buffer_size;
-
-    if(len >= size)
-    {
-        for(int i=0;i<size;i++)
-        {
-            ringbuffer->data[ringbuffer->tail] = buffer[i];
-            ringbuffer->tail = (ringbuffer->tail + 1) % ringbuffer->full_size;
-            ringbuffer->buffer_size++;
-        }
-        return 0;
-    }
-    return -1;
-}
-
-int ringbuffer_read(ringbuffer_st ringbuffer, data_t* data, int size)
-{
-    if(ringbuffer.buffer_size == 0)
-        return 0;
-
-    int len = ringbuffer.full_size - ringbuffer.head;
-
-    if(size > ringbuffer.buffer_size)
-    {
-        if(len >= ringbuffer.buffer_size)
-        {
-            memcpy(data, ringbuffer.data + ringbuffer.head, ringbuffer.buffer_size);
-        }
-        else
-        {
-            memcpy(data, &ringbuffer.data[ringbuffer.head], len);
-            memcpy(data + len, ringbuffer.data, ringbuffer.buffer_size - len);
-        }
-
-        return ringbuffer.buffer_size;
-    }
-
-    if(len >= size)
-    {
-        memcpy(data, ringbuffer.data + ringbuffer.head, size);
-    }
-    else
-    {
-        memcpy(data, &ringbuffer.data[ringbuffer.head], len);
-        memcpy(data + len, ringbuffer.data, size - len);
-    }
-    return size;
-}
-
-int ringbuffer_data(ringbuffer_st ringbuffer, data_t* data, int index)
-{
-    if(index >= ringbuffer.buffer_size || !data)
-        return -1;
-
-    *data = ringbuffer.data[(ringbuffer.head + index) % ringbuffer.full_size];
-    return 0;
-}
-
-void ringbuffer_popup(ringbuffer_st* ringbuffer, int size)
-{
-    if(ringbuffer->buffer_size >= size)
-    {
-        ringbuffer->head = (ringbuffer->head + size) % ringbuffer->full_size;
-        ringbuffer->buffer_size -= size;
-    }
-    else
-    {
-        ringbuffer->head = (ringbuffer->head + ringbuffer->buffer_size) % ringbuffer->full_size;
-        ringbuffer->buffer_size = 0;
-    }
-}
-
-void ringbuffer_clear(ringbuffer_st* ringbuffer)
-{
-    ringbuffer->head = 0;
-    ringbuffer->tail = 0;
-    ringbuffer->buffer_size = 0;
-}
-
-bool ringbuffer_empty(ringbuffer_st ringbuffer)
-{
-    if(ringbuffer.buffer_size == 0)
-        return true;
-    return false;
-}
-
-void ringbuffer_print(ringbuffer_st ringbuffer, bool print_buffer)
-{
-    printf("head index:  %d\n", ringbuffer.head);
-    printf("tail index:  %d\n", ringbuffer.tail);
-    printf("full size:   %d\n", ringbuffer.full_size);
-    printf("buffer size: %d\n", ringbuffer.buffer_size);
- 
-    if(ringbuffer.buffer_size > 0 && print_buffer)
-    {
-        printf("bufer hex:   ");
-        for(int i = 0; i < ringbuffer.buffer_size; i++)
-        {
-           if(i != 0 && i % 20 == 0)
-           {
-               printf("\n");
-               printf("             ");
-           }
-           printf("0x%02x ", ringbuffer.data[(ringbuffer.head + i) % ringbuffer.full_size]);
-        }
-        printf("\n");
-    }
-}
+/**
+ * @file    ringbuffer.c
+ * @brief   ringbuffer source file.
+ *
+ * @details 
+ *
+ * @author  jlgwch
+ * @date    2023-10-16
+ * @version 1.0
+ *
+ * @history
+ *  - 2023-10-16: jlgwch - Created the file.
+ *
+ * @copyright Copyright (c) 2023~ jlgwch. All rights reserved.
+ */
+
+#include "ringbuffer.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+bool ringbuffer_init(ringbuffer_st* ringbuffer, int size)
+{
+    ringbuffer->head = 0;
+    ringbuffer->tail = 0;
+    ringbuffer->buffer_size = 0;
+    ringbuffer->full_size = size;
+    ringbuffer->data = (data_t*)malloc(size);
+    if(ringbuffer->data == NULL)
+        return false;
+    return true;
+}
+
+void ringbuffer_release(ringbuffer_st* ringbuffer)
+{
+    if(ringbuffer->data)
+        free(ringbuffer->data);
+    ringbuffer->head = 0;
+    ringbuffer->tail = 0;
+    ringbuffer->buffer_size = 0;
+    ringbuffer->full_size = 0;
+}
+
+int ringbuffer_append(ringbuffer_st* ringbuffer, const data_t* buffer, int size)
+{
+    int len = ringbuffer->full_size - ringbuffer->buffer_size;
+
+    if(len >= size)
+    {
+        for(int i=0;i<size;i++)
+        {
+            ringbuffer->data[ringbuffer->tail] = buffer[i];
+            ringbuffer->tail = (ringbuffer->tail + 1) % ringbuffer->full_size;
+            ringbuffer->buffer_size++;
+        }
+        return 0;
+    }
+    return -1;
+}
+
+int ringbuffer_read(ringbuffer_st ringbuffer, data_t* data, int size)
+{
+    if(ringbuffer.buffer_size == 0)
+        return 0;
+
+    int len = ringbuffer.full_size - ringbuffer.head;
+
+    if(size > ringbuffer.buffer_size)
+    {
+        if(len >= ringbuffer.buffer_size)
+        {
+            memcpy(data, ringbuffer.data + ringbuffer.head, ringbuffer.buffer_size);
+        }
+        else
+        {
+            memcpy(data, &ringbuffer.data[ringbuffer.head], len);
+            memcpy(data + len, ringbuffer.data, ringbuffer.buffer_size - len);
+        }
+
+        return ringbuffer.buffer_size;
+    }
+
+    if(len >= size)
+    {
+        memcpy(data, ringbuffer.data + ringbuffer.head, size);
+    }
+    else
+    {
+        memcpy(data, &ringbuffer.data[ringbuffer.head], len);
+        memcpy(data + len, ringbuffer.data, size - len);
+    }
+    return size;
+}
+
+int ringbuffer_data(ringbuffer_st ringbuffer, data_t* data, int index)
+{
+    if(index >= ringbuffer.buffer_size || !data)
+        return -1;
+
+    *data = ringbuffer.data[(ringbuffer.head + index) % ringbuffer.full_size];
+    return 0;
+}
+
+void ringbuffer_popup(ringbuffer_st* ringbuffer, int size)
+{
+    if(ringbuffer->buffer_size >= size)
+    {
+        ringbuffer->head = (ringbuffer->head + size) % ringbuffer->full_size;
+        ringbuffer->buffer_size -= size;
+    }
+    else
+    {
+        ringbuffer->head = (ringbuffer->head + ringbuffer->buffer_size) % ringbuffer->full_size;
+        ringbuffer->buffer_size = 0;
+    }
+}
+
+void ringbuffer_clear(ringbuffer_st* ringbuffer)
+{
+    ringbuffer->head = 0;
+    ringbuffer->tail = 0;
+    ringbuffer->buffer_size = 0;
+}
+
+bool ringbuffer_empty(ringbuffer_st ringbuffer)
+{
+    if(ringbuffer.buffer_size == 0)
+        return true;
+    return false;
+}
+
+void ringbuffer_print(ringbuffer_st ringbuffer, bool print_buffer)
+{
+    printf("head index:  %d\n", ringbuffer.head);
+    printf("tail index:  %d\n", ringbuffer.tail);
+    printf("full size:   %d\n", ringbuffer.full_size);
+    printf("buffer size: %d\n", ringbuffer.buffer_size);
+ 
+    if(ringbuffer.buffer_size > 0 && print_buffer)
+    {
+        printf("bufer hex:   ");
+        for(int i = 0; i < ringbuffer.buffer_size; i++)
+        {
+           if(i != 0 && i % 20 == 0)
+           {
+               printf("\n");
+               printf("             ");
+           }
+           printf("0x%02x ", ringbuffer.data[(ringbuffer.head + i) % ringbuffer.full_size]);
+        }
+        printf("\n");
+    }
+}

+ 138 - 138
src/ringbuffer.h

@@ -1,138 +1,138 @@
-/**
- * @file    ringbuffer.h
- * @brief   ringbuffer header file.
- *
- * @details 
- *
- * @author  jlgwch
- * @date    2023-10-16
- * @version 1.0
- *
- * @history
- *  - 2023-10-16: jlgwch - Created the file.
- *
- * @copyright Copyright (c) 2023~ jlgwch. All rights reserved.
- */
-
-#ifndef __RINGBUFFER_H__
-#define __RINGBUFFER_H__
-
-#include "types.h"
-
-typedef uint8 data_t;
-
-typedef struct
-{
-    int head;
-    int tail;
-    int full_size;
-    int buffer_size;
-    data_t* data;
-} ringbuffer_st;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Initialize a ring buffer.
- *
- * This function initializes a ring buffer with the given size.
- *
- * @param ringbuffer Pointer to the ring buffer structure to be initialized.
- * @param size Size of the ring buffer.
- * @return true if initialization is successful, false otherwise.
- */
-bool ringbuffer_init(ringbuffer_st* ringbuffer, int size);
-
-/**
- * @brief Release resources used by the ring buffer.
- *
- * This function releases any dynamically allocated memory associated with the ring buffer.
- *
- * @param ringbuffer Pointer to the ring buffer to be released.
- */
-void ringbuffer_release(ringbuffer_st* ringbuffer);
-
-/**
- * @brief Append data to the ring buffer.
- *
- * This function appends data to the ring buffer. If the buffer is full, do nothing.
- *
- * @param ringbuffer Pointer to the ring buffer.
- * @param buffer Pointer to the data to be appended.
- * @param size Size of the data to be appended.
- * @return 0 if append is successful, -1 otherwise.
- */
-int ringbuffer_append(ringbuffer_st* ringbuffer, const data_t* buffer, int size);
-
-/**
- * @brief Read data from the ring buffer.
- *
- * This function reads data from the ring buffer. The function will attempt to read up to the given size.
- *
- * @param ringbuffer The ring buffer from which data is to be read.
- * @param data Pointer to the buffer where read data will be stored.
- * @param size Size of data to be read from the buffer.
- * @return The number of bytes successfully read.
- */
-int ringbuffer_read(ringbuffer_st ringbuffer, data_t* data, int size);
-
-/**
- * @brief Get data from a specific index in the ring buffer.
- *
- * This function retrieves data from a specific index in the ring buffer without removing it.
- *
- * @param ringbuffer The ring buffer from which data is to be retrieved.
- * @param index Index of the data to retrieve.
- * @param data Pointer to the variable where the retrieved data will be stored.
- * @return `0` if the data was successfully retrieved and stored in `data`; 
- *         `-1` if the index is out of bounds or the data could not be retrieved.
- */
-int ringbuffer_data(ringbuffer_st ringbuffer, data_t* data, int index);
-
-/**
- * @brief Pop data from the front of the ring buffer.
- *
- * This function removes the specified number of elements from the front of the buffer.
- *
- * @param ringbuffer Pointer to the ring buffer.
- * @param size Number of elements to remove from the front of the buffer.
- */
-void ringbuffer_popup(ringbuffer_st* ringbuffer, int size);
-
-/**
- * @brief Clear the ring buffer.
- *
- * This function clears all the data in the ring buffer, resetting it to an empty state.
- *
- * @param ringbuffer Pointer to the ring buffer.
- */
-void ringbuffer_clear(ringbuffer_st* ringbuffer);
-
-/**
- * @brief Check if the ring buffer is empty.
- *
- * This function checks if the ring buffer is empty, meaning no data is currently stored.
- *
- * @param ringbuffer The ring buffer to check for emptiness.
- * @return true if the buffer is empty, false otherwise.
- */
-bool ringbuffer_empty(ringbuffer_st ringbuffer);
-
-/**
- * @brief Print the contents of the ring buffer.
- *
- * This function prints the info stored in the ring buffer.
- *
- * @param ringbuffer The ring buffer to print.
- * @param print_buffer A boolean flag that controls whether the entire buffer contents should be printed.
- *                     If `true`, the entire buffer will be printed; if `false`, only summary information will be printed.
- */
-void ringbuffer_print(ringbuffer_st ringbuffer, bool print_buffer);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // __RINGBUFFER_H__
+/**
+ * @file    ringbuffer.h
+ * @brief   ringbuffer header file.
+ *
+ * @details 
+ *
+ * @author  jlgwch
+ * @date    2023-10-16
+ * @version 1.0
+ *
+ * @history
+ *  - 2023-10-16: jlgwch - Created the file.
+ *
+ * @copyright Copyright (c) 2023~ jlgwch. All rights reserved.
+ */
+
+#ifndef __RINGBUFFER_H__
+#define __RINGBUFFER_H__
+
+#include "types.h"
+
+typedef uint8 data_t;
+
+typedef struct
+{
+    int head;
+    int tail;
+    int full_size;
+    int buffer_size;
+    data_t* data;
+} ringbuffer_st;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Initialize a ring buffer.
+ *
+ * This function initializes a ring buffer with the given size.
+ *
+ * @param ringbuffer Pointer to the ring buffer structure to be initialized.
+ * @param size Size of the ring buffer.
+ * @return true if initialization is successful, false otherwise.
+ */
+bool ringbuffer_init(ringbuffer_st* ringbuffer, int size);
+
+/**
+ * @brief Release resources used by the ring buffer.
+ *
+ * This function releases any dynamically allocated memory associated with the ring buffer.
+ *
+ * @param ringbuffer Pointer to the ring buffer to be released.
+ */
+void ringbuffer_release(ringbuffer_st* ringbuffer);
+
+/**
+ * @brief Append data to the ring buffer.
+ *
+ * This function appends data to the ring buffer. If the buffer is full, do nothing.
+ *
+ * @param ringbuffer Pointer to the ring buffer.
+ * @param buffer Pointer to the data to be appended.
+ * @param size Size of the data to be appended.
+ * @return 0 if append is successful, -1 otherwise.
+ */
+int ringbuffer_append(ringbuffer_st* ringbuffer, const data_t* buffer, int size);
+
+/**
+ * @brief Read data from the ring buffer.
+ *
+ * This function reads data from the ring buffer. The function will attempt to read up to the given size.
+ *
+ * @param ringbuffer The ring buffer from which data is to be read.
+ * @param data Pointer to the buffer where read data will be stored.
+ * @param size Size of data to be read from the buffer.
+ * @return The number of bytes successfully read.
+ */
+int ringbuffer_read(ringbuffer_st ringbuffer, data_t* data, int size);
+
+/**
+ * @brief Get data from a specific index in the ring buffer.
+ *
+ * This function retrieves data from a specific index in the ring buffer without removing it.
+ *
+ * @param ringbuffer The ring buffer from which data is to be retrieved.
+ * @param index Index of the data to retrieve.
+ * @param data Pointer to the variable where the retrieved data will be stored.
+ * @return `0` if the data was successfully retrieved and stored in `data`; 
+ *         `-1` if the index is out of bounds or the data could not be retrieved.
+ */
+int ringbuffer_data(ringbuffer_st ringbuffer, data_t* data, int index);
+
+/**
+ * @brief Pop data from the front of the ring buffer.
+ *
+ * This function removes the specified number of elements from the front of the buffer.
+ *
+ * @param ringbuffer Pointer to the ring buffer.
+ * @param size Number of elements to remove from the front of the buffer.
+ */
+void ringbuffer_popup(ringbuffer_st* ringbuffer, int size);
+
+/**
+ * @brief Clear the ring buffer.
+ *
+ * This function clears all the data in the ring buffer, resetting it to an empty state.
+ *
+ * @param ringbuffer Pointer to the ring buffer.
+ */
+void ringbuffer_clear(ringbuffer_st* ringbuffer);
+
+/**
+ * @brief Check if the ring buffer is empty.
+ *
+ * This function checks if the ring buffer is empty, meaning no data is currently stored.
+ *
+ * @param ringbuffer The ring buffer to check for emptiness.
+ * @return true if the buffer is empty, false otherwise.
+ */
+bool ringbuffer_empty(ringbuffer_st ringbuffer);
+
+/**
+ * @brief Print the contents of the ring buffer.
+ *
+ * This function prints the info stored in the ring buffer.
+ *
+ * @param ringbuffer The ring buffer to print.
+ * @param print_buffer A boolean flag that controls whether the entire buffer contents should be printed.
+ *                     If `true`, the entire buffer will be printed; if `false`, only summary information will be printed.
+ */
+void ringbuffer_print(ringbuffer_st ringbuffer, bool print_buffer);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __RINGBUFFER_H__