小编Car*_*rum的帖子

给定角度和长度,如何计算坐标

假设左上角是(0,0)并且我给出了30度的角度,起点为(0,300),线长度为600,我该如何计算线的终点以便该线代表给定的角度.

C伪代码是

main() {
  int x,y;

  getEndPoint(30, 600, 0, 300, &x, &y);
  printf("end x=%d, end y=%d", x, y);
}

// input angle can be from 0 - 90 degrees

void getEndPoint(int angle, int len, int start_x, int start_y, int *end_x, int *end_y) 
{

    calculate the endpoint here for angle and length

    *end_x = calculated_end_x;
    *end_y = calculated_end_y;
}
Run Code Online (Sandbox Code Playgroud)

c c++ math trigonometry

20
推荐指数
1
解决办法
3万
查看次数

UITableViewCell设置所选图像

试图弄清楚如何为a设置所选图像tableViewCell.

旧的写作方式是,cell.selectedImage但自3.0以来已被弃用.

我尝试过很多东西,但是不能把它弄得太干净了.

谢谢!玩笑

iphone objective-c uitableview ios

16
推荐指数
2
解决办法
2万
查看次数

在unix中通过单个列合并两个文件

我想在unix中将两个文件合并为一列.

我有file_a:

subjectid name age  
12 Jane 16  
24 Kristen 90  
15 Clarke 78  
23 Joann 31  
Run Code Online (Sandbox Code Playgroud)

我有另一个file_b:

subjectid prob_disease  
12 0.009  
24 0.738  
15 0.392  
23 1.2E-5  
Run Code Online (Sandbox Code Playgroud)

我想在命令行中合并这些文件.我想通过subjectid合并文件a和b.由于每个文件大约有200万行,我试过R但由于数据量大而冻结,有人可以帮我在linux中做这个吗?期望的输出:

subjectid prob_disease name age  
12 0.009 Jane 16  
24 0.738 Kristen 90   
15 0.392 Clarke 78  
23 1.2E-5 Joanna 31     
Run Code Online (Sandbox Code Playgroud)

请帮助,谢谢!

unix linux merge

15
推荐指数
1
解决办法
3万
查看次数

在C中执行查找表的最佳方法是什么?

我正在开发一个嵌入式C项目.我有一个LCD显示屏,每个字符有一个5x7点阵.要显示特定字符​​,您必须移动5个字节,与要打开的点相关联.所以我需要使用一个键来制作某种查找表,我可以传入一个ASCII字符,然后返回一个包含5个字节的数组...例如,调用这个函数就像这样,

GetDisplayBytes('A');

应该返回`这样的数组......

C[0] = 0x7E : C[1] = 0x90 : C[2] = 0x90 : C[3] = 0x90 : C[4] = 0x7E

在C中这样做的最佳方法是什么?

c lookup-tables

12
推荐指数
1
解决办法
3万
查看次数

与gnumake和先决条件的并行建筑

我的第一个问题(耶!)是关于gnumake和并行构建的.这是一个快速示例文件:

.PHONY: tool_1 tool_2 tool_3 tool_4 all tools

all: | tools

tools: | tool_2 tool_3 tool_4

tool_1:
    # commands for tool 1

tool_2: | tool_1
    # commands for tool 2

tool_3: | tool_1
    # commands for tool 3

tool_4: | tool_1
    # commands for tool 4
Run Code Online (Sandbox Code Playgroud)

如果我make -j对这个人这么做,我在这里是否正确,以确保命令tool_1只执行一次,并在make尝试构建任何之前tool_[234]

我正在寻找的是首先构建make -j原因tool_1,然后tool_[234]并行构建,但不执行命令tool_1三次.我希望这是有道理的.感谢您的任何建议或想法!

parallel-processing makefile gnu-make

10
推荐指数
1
解决办法
7505
查看次数

装配中耗尽标签名称

Heyo,

我上大学的班级让我们编写程序集.到目前为止,我从未真正意识到C的易用性.

现在,当我在汇编程序中编程时,我经常需要使用标签来生成while/for/if循环和条件,例如:

SKIP:
    ...
COMP:ADD R1, R1, #0 ;Check for equality
     BRZ WHILEEND
     ...            ;code inside the while loop
     JMP COMP       ;Return to while loop
WHILEEND:
     ...
Run Code Online (Sandbox Code Playgroud)

所以,在这个while循环(例子)中,我为子程序使用了1个标签,为循环本身使用了2个标签.对于我在汇编中所做的所有循环和分支,我已经没有好的标签名称,你们做了什么来保持它的多样性和描述性?

assembly labels

10
推荐指数
1
解决办法
2143
查看次数

如何从du -h输出的末尾删除文件名

举个例子:

$ du -h file_size.txt
112K file_size.txt
Run Code Online (Sandbox Code Playgroud)

我如何从du -h的输出中删除文件名

我曾尝试使用sed搜索字符串(文件名)并将其替换为空,但它没有用(下面的命令)

du -h file_size.txt | sed 's/ 'file_size.txt'//'
Run Code Online (Sandbox Code Playgroud)

有人可以指出为什么这不会工作,或者更好的方法吗?

问候

保罗

linux awk sed

9
推荐指数
3
解决办法
5230
查看次数

在C++ 11中编写Copy/Move/operator = trio的"正确"方法是什么?

此时,编写复制构造函数和赋值运算符对是明确定义的; 快速搜索将引导您充分了解如何正确编码这些.

既然移动构造函数已进入组合,是否有一种新的"最佳"方式?

c++ c++11

9
推荐指数
2
解决办法
762
查看次数

在编译器之间匹配va_list类型

我有一个由一堆动态加载的模块组成的项目.最初,一切都是用MSVC 2003构建的,但最近我一直在努力让它与GCC一起工作.除了一个问题,一切都很顺利.对于64位代码,GCC和MSVC不同意它是什么va_list.对于32位,事情看起来很好.64位不匹配导致的问题是,使用一个编译器构建的模块具有带va_list参数的公共函数,并且该函数是从其他编译器构建的模块调用的.

除了第7.15节变量论证va_list之外,规范没有说明是什么,第3段:<stdarg.h>

声明的类型是

va_list

其适合用于保持由宏所需信息的对象类型va_start,va_arg,va_end,和va_copy.

那一段只是意味着这是所有编译器相关的东西 - 所以,有没有办法让这两个编译器就64位的内容达成一致va_list?对我的系统影响最小,使GCC与MSVC匹配va_list最好,但我会采取任何我能得到的解决方案.

谢谢你的帮助!

编辑:

我做了一些32位测试,我也有问题,这让我感到惊讶,因为任何32位Intel平台之间都没有ABI差异.我正在使用的MSVC代码库将所有可变参数函数宏定义为:

typedef char *va_list;
#define intsizeof(n)    ((sizeof(n) + sizeof(int) - 1) &~(sizeof(int) - 1))
#define va_start(ap, v) (ap = (va_list)&(v) + intsizeof(v))
#define va_arg(ap, t)   (*(t *) ((ap += intsizeof(t)) - intsizeof(t)))
#define va_end(ap)      (ap = (va_list)0)
Run Code Online (Sandbox Code Playgroud)

我从实际项目中略微简化了一下,但这是我用于测试的代码.使用GCC,这段代码肯定没有正确得到我的论点.也许这只是一个bug,正如Zack在下面所说的那样?

再次编辑:

我得到的工作成果与下列32位测试应用程序-O0,-O0-O2,但不-O3,-Os …

c gcc visual-studio-2003 variadic-functions

8
推荐指数
1
解决办法
3636
查看次数

简化这个正则表达式

我正在为我的编译器类做一些预考试练习,并且需要简化这个正则表达式.

(a U b)*(a U e)b* U (a U b)*(b U e)a*
Run Code Online (Sandbox Code Playgroud)

很明显,e是空字符串,U代表联合.

到目前为止,我认为其中一个(a U b)*可以被移除,因为U a = a的并集.但是,我找不到任何其他简化,到目前为止其他问题做得不好.:(

感谢任何帮助,非常感谢!

regex simplify

7
推荐指数
1
解决办法
1542
查看次数