c - 使用 const 或 define 时,初始化元素在 C 中不是常量
问题描述
我正在编写练习代码,但遇到如下错误:
1. 环境
- 操作系统:
Ubuntu 18.04 x64
- 构建工具:
apt install build-essential cmake -y
2.代码
文件名:repl.c
#include <stdint.h>
...
const uint32_t PAGE_SIZE = 4096; // 4*1024 bytes
#define TABLE_MAX_PAGES 100
const uint32_t ROWS_PER_PAGE = PAGE_SIZE / ROW_SIZE;
const uint32_t TABLE_MAX_ROWS = ROWS_PER_PAGE * TABLE_MAX_PAGES;
...
3. CMakefile
文件名:CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(SQLITE_CLONE)
add_executable(a.out repl.c)
4. 重现错误
尝试构建:
cmake .
make
但得到如下错误:
/home/ws/sqlite_clone_in_c/P3/repl.c:157:32: error: initializer element is not constant
const uint32_t ROWS_PER_PAGE = PAGE_SIZE / ROW_SIZE;
^~~~~~~~~
/home/ws/sqlite_clone_in_c/P3/repl.c:158:33: error: initializer element is not constant
const uint32_t TABLE_MAX_ROWS = ROWS_PER_PAGE * TABLE_MAX_PAGES;
解决方案
推荐阅读
- javascript - NuxtJS - 从外部 API 获取数据后,控制台输出错误 CORS
- node.js - Stripe API 描述不创建新行
- tensorflow - 可视化分类报告的问题
- python - Traceback AttributeError:模块'pyaudio'没有属性'__version__'
- function - 检查员unity3d中没有出现函数变量?
- php - 如何在codeigniter中将数据从模型传递到控制器
- c++ - 如何基于 N 输入在 C++ 中添加列
- reactjs - 滚动到 x 时,react-scroll scrollToBottom 不起作用
- pine-script - 在 Pine 脚本策略测试中,长期进入和退出独立于短期进入
- php - 如何处理多个 https 请求以同时运行一个 php 脚本?