- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在阅读 Milan Stevanovic 的《Advanced C and C++ compiling》一书
以下是书中的快照,然后是我面临的问题。
概念图:演示项目
用于构建这个简单项目的开发环境将基于运行在Linux。 list 2-1 到 2-3 包含演示项目中使用的代码。
list 2-1。 函数.h
#pragma once
#define FIRST_OPTION
#ifdef FIRST_OPTION
#define MULTIPLIER (3.0)
#else
#define MULTIPLIER (2.0)
#endif
float add_and_multiply(float x, float y);
list 2-2。 函数.c
int nCompletionStatus = 0;
float add(float x, float y)
{
float z = x + y;
return z;
}
float add_and_multiply(float x, float y)
{
float z = add(x,y);
z *= MULTIPLIER;
return z;
}
list 2-3。 main.c
#include "function.h"
extern int nCompletionStatus = 0;
int main(int argc, char* argv[])
{
float x = 1.0;
float y = 5.0;
float z;
z = add_and_multiply(x,y);
nCompletionStatus = 1;
return 0;
}
演示项目预处理示例:
gcc 编译器提供了只对输入源文件进行预处理阶段的模式:
gcc -i <input file> -o <output preprocessed file>.i
除非另有说明,否则预处理器的输出是与输入文件同名的文件,并且其文件扩展名为.i
。在文件 function.c
上运行预处理器的结果如 list 2-4 所示。
list 2-4。 函数.i
# 1 "function.c"
# 1 "
# 1 "
# 1 "function.h" 1
# 11 "function.h"
float add_and_multiply(float x, float y);
# 2 "function.c" 2
int nCompletionStatus = 0;
float add(float x, float y)
{
float z = x + y;
return z;
}
float add_and_multiply(float x, float y)
{
float z = add(x,y);
z *= MULTIPLIER;
return z;
}
如果将很少的额外标志传递给 gcc,则可以获得更紧凑和更有意义的预处理器输出,例如
gcc -E -P -i <input file> -o <output preprocessed file>.i
这会生成如 list 2-5 所示的预处理文件。
list 2-5。 function.i
(精简版)
float add_and_multiply(float x, float y);
int nCompletionStatus = 0;
float add(float x, float y)
{
float z = x + y;
return z;
}
float add_and_multiply(float x, float y)
{
float z = add(x,y);
z *= 3.0;
return z;
}
显然,预处理器替换了符号 MULTIPLIER
,其实际值基于以下事实:USE_FIRST_OPTION
变量已定义,最终成为 3.0
。
当我使用 gcc 编译程序时,以下是我面临的错误来 self 的终端的快照。
gcc -i function.c -o function.i
cc1: error: unrecognized command line option '-i'
gcc function.c -o function.i
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o:
In function '_start':
(.text+0x18): undefined reference to 'main'
collect2: ld returned 1 exit status
$pwd
/home/adminuser/advance_compiling
$ll
total 20
drwxrwxr-x 2 adminuser adminuser 4096 Jan 10 23:51 ./
drwxr-xr-x 26 adminuser adminuser 4096 Jan 10 23:57 ../
-rw-rw-r-- 1 adminuser adminuser 216 Nov 15 08:58 function.c
-rw-rw-r-- 1 adminuser adminuser 163 Jan 10 23:33 function.h
-rw-rw-r-- 1 adminuser adminuser 257 Dec 28 06:46 main.c
我如何摆脱这种情况并继续学习类(class)?请提出建议。
最佳答案
-i
不是有效的命令行选项 - 我不确定这本书是从哪里得到的。为了仅运行预处理器,您应该改用选项 -E
。
关于c++ - 高级 C 和 C++ 编译 : unable to compile the example program mentioned in the book,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27930973/
如何使用 angular2-mentions 将 URL RouterLink 添加到 @mention 用户。 我的代码是: 如何添加这个: {{contactNames}} 对此有什
我正在尝试实现 jquery.mentions,以便在输入 @ 符号时提示系统中的用户。 一切运行良好,使用 Ajax 查询来填充列表。 但是,编辑现有评论时我很挣扎。 我已将默认文本设置为之前生成的
所以我一直在试图弄清楚这个正则表达式的含义 - 但我并没有走得太远。 (\w+\.?(?:\w+)?) 语言是 Javascript。 我理解这个正则表达式的部分内容 - 它看起来像是捕获点、任何单词
我正在努力想出一个只能在单词开头找到 ampersat 的正则表达式。例如: 这里:@dog 去了公园。 但不是这里:d@og 去了公园。 或者在这里:The@dog 去了公园。 本质上,我只是想捕获
我正在构建一个基本的 Twitter 客户端应用程序。我正在尝试弄清楚如何使包含推文的 TextView 自动链接 @mentions,以便它们链接到与推特网站上相同的任何人的推特页面。我的猜测是,这
尝试用 anchor 标记替换所有出现的@mention,到目前为止我有: $comment = preg_replace('/@([^@ ])? /', '@$1 ', $comment); 采用以
我尝试使用 this 中的 Mention.js . 我的 Search.html 包含, $('#try').mention({ delimiter: '@', users
我想在我的文本区域中显示由单词 @ 触发的自动完成表单,就像这个库 http://ichord.github.io/At.js/但只使用 angularjs 和 css 我应该写什么样的指令?另外,有
我想捕获对@usernames 的提及。用户名有这些规则: 只能使用小写字母、数字或点 (.) 不以点开头或结尾 连续不超过一个点(例如,不允许使用 user..name,但可以使用 us.er.na
我有这个来自 Andrew Whitaker 的自动完成插件 - DEMO 假设我在 textarea 中有一个字符串 "@peterwateber welcome" 我希望它在隐藏标签中输出为 "@
我现在的代码是这样的: var regex = '@([a-z0-9_]+)'; replacedText = replacedText.replace(regex, '$1'); 但是,当我输入“你
StackOverflow 用户, 我意识到新的“@mentions”是 facebook 的一项非常新的功能,但是你们中有人能想到如何使用 Facebook API 访问此功能吗? 我假设需要一个单
我正在尝试为当前登录的用户显示@mentions,但收到语法错误,而且我不知道它是什么。我的数据库是 mysql,我的查询当前如下所示: $sql = "SELECT users.userna
所以我有这个正则表达式 /(?:[\s.]|^)@(\w+\.?(?:\w+))/g 这错误地给出了提及之前的句号 - 例如 .@blah. 是否匹配并捕获了前面的句号。 此外,当我这样做时 - 句子
嘿伙计们,我正在使用这个plugin来自霍基。它就像 Twitter,你可以在其中@提及某人。我的输出有问题。这个方法: updateHidden: function() { var
我正在尝试使用 jquery ajax php 制作一个 facebook 和 twitter 风格的提及系统,但如果我尝试@mention 超过一个用户,我会遇到问题。例如,如果我开始输入如下内容:
我想做什么 我想在聊天 Activity 中提及人和组。当用户输入@时,我想填充不包含用户和 channel 的列表这样他就可以同时提及人和 channel 我做了什么 我从这个问题中得到了帮助And
问题 : 我正在尝试为使用 draft-js 创建的内容创建一个编辑界面+ draft-js-mention-plugin .然而,editorState没有坚持,只有纯文本。提及被保存为对象数组。现
在 Angular 提及库的帮助下,我实现了一个允许我提及多个用户的文本区域。 有没有办法保存选中用户的ID?如果可能,将它们保存为字符串数组。 示例:我选择了用户姓名 1、姓名 2、姓名 3 ...
我正在使用 Rails 3.2 应用程序,我需要为文本区域提供自动建议,以在同一文本区域中获取 @mentions 用户和 #tags。 详细说明:当用户开始输入@ab时...自动建议应该从提供的js
我是一名优秀的程序员,十分优秀!