static在函数声明的时候加还是函数定义的时候加

如题,我现在有一个函数先声明后定义的,程序能正常运行,
然后我想在这个函数前加上static,我试过只在声明的时候加,
只在定义的时候加,还有声明和定义的时候都加,都无法通过
编译,linux下c语言写的,我现在不想把这个函数的代码提到
前面去,就想要先声明后定义,而且要给它加上static,请问
该怎么解决?

6个回答

这个是需要都加的,静态函数是需要定义和声明同步的

pennytang
pennytang 回复k0115: 在函数前面加static,他的作用域只能用于本文件,其它文件中的函数想调用就出错。
接近 2 年之前 回复
k0115
z小康 都加和只加一个我都是过,但是没办法通过编译呀,不加static程序可以正常运行,或是把函数定义放在使用之前不声明也可以正常运行
接近 2 年之前 回复

好像是编程环境的问题,在vs下面试了下确实能跑过,但是linux下面怎么加都编不过,请问有人遇到过这种问题吗?是要在编译的时候加什么选项吗?

qq_37487977
utopia、 需要都加
接近 2 年之前 回复
k0115
z小康 就是main函数里是void a(); a(); return 0; 然后在man函数后面定义a函数,输出hello world, 然后只要加上static就无法通过编译了
接近 2 年之前 回复
k0115
z小康 回复wh_2396: 我试了一下,写了个hello world先声明后定义,加上static也编译不通过
接近 2 年之前 回复
k0115
z小康 回复wh_2396: gcc http.c -o http -lpthread http.c: In function ‘service’: http.c:83: error: invalid storage class for function ‘get_line’ http.c: At top level: http.c:107: error: static declaration of ‘get_line’ follows non-static declaration http.c:84: note: previous implicit declaration of ‘get_line’ was here make: *** [http] Error 1大佬帮我看下呗
接近 2 年之前 回复
wh_2396
wh_ 需要加什么选项要看报的什么错,这个是最快最直接的方法,年轻人
接近 2 年之前 回复

都需要加的,如果不清楚的话,有一个简单的办法,就是将静态函数定义在源文件的上面,也就是将需要提供给外部调用的接口定义在静态函数之后,这样就不需要对静态函数进行申明了(也就是直接定义一个静态函数)。提供给外部调用的接口就可以直接调用静态函数了,省去静态函数申明这一步了。

你的声明和定义是在一个文件中吗?还是说声明和定义是在不同文件中

一般情况,静态函数不用写在头文件中,只将接口函数放在头文件,静态函数在被停调用前一定要声明,至于加static,建议声明和定义都加,但是只是定义时加是不会报错的。

c的话都要加。如果是c++,定义static成员变量,在类中声明,并在类外(不声明static)进行初始化。而且无需在定义中再次声明static

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
static 函数定义在头文件中有什么作用

static 函数定义在头文件中有什么作用?学渣求教,static 不就是要限制作用域吗?

C++中全局static函数需要在头文件中声明吗?

我写了一个冒泡排序的单独的模块,实现使用了2个函数:1、冒泡排序的逻辑实现,2、swap交换函数。显然我并不想对这个模块的使用者提供swap函数,而只让别人使用排序函数就够了。于是我把swap函数修饰为static ,那么我的swap函数需要在头文件中声明吗? 没有C币了不好意思。。。 ``` /*sort.cpp*/ #include"sort.h" static void swap(int &a, int&b) { int t = a; a = b; b = t; } void bubble_sort(int arr[], int len) { for (int i = 0; i < len - 1; ++i) { for (int j = 0; j < len - 1 - i; ++j) { if (arr[j]>arr[j + 1]) swap(arr[j], arr[j + 1]); } } } ``` ``` /*one.h*/ #ifndef _SORT_H_ #define _SORT_H_ void bubble_sort(int arr[], int len); static void swap(int &a, int&b); //这个声明需要加上吗? #endif ```

在类内声明一个函数既用static又用inline在类外怎么实现

``` static inline double getTotal(); ``` 在类外要不要写static 和inline

c语言static加与不加的区别

问错了,编辑一下,我是想问为什么加了static之后输出的y全部是3,但是x的输出又是根据static的y的变化得到的? 我知道x+=y++的意思,x,y的定义写在函数外面是什么意思。 以及请问能否详细解释加和不加static的输出结果是怎么得到的,感谢。 ``` #include <stdio.h> int x = 0,y = 3; void fun() { // static int y = 1; x+=y++; } void main() { int i; for(i = 1; i < 4; i++) { fun(); printf("%d,%d\n",x,y); } } ```

C++中静态成员变量和静态成员函数的定义区别

楼主小白,请教一下大家,为什么C++中,静态成员函数可以在类中定义。 如 ``` class A { public: static void func() { cout << "test" << endl; } }; ``` 而静态成员变量却不能在类里面定义 ``` class A { public: static int a = 1; \\error }; ``` 为什么静态成员函数和静态成员变量会有这两种差异?小弟在此先谢谢啦

静态成员函数为什么不能声明成 const 的?

《C++ Primer》第五版,中文版。269 页。 类似的,静态成员函数也不与任何对象绑定在一起,它们不包含 this 指针。作为结果,静态成员不能声明成 const 的,而且我们也不能在 static 函数体内使用this 指针。

c语言工程,在.h文件中声明的函数是不是在同名.c文件中定义?

比如在main.c中已经include"output.h",main函数中要用到output.h声明的PrintMessage函数, 那么PrintMessage函数是不是在output.c中定义?

在函数体{ }之前加const关键字的作用是什么?

如题!!! 如题~~~ 如题### ``` int getRef( )const() {rerturn a;} ``` 这个语句是正确的嘛?

C语言 static定义变量的问题

static定义一个变量到底需不需要加上数据类型呢?这里没加也没出错 #include<stdio.h> int main() { int i; static a=1; for(i=0;i<5;i++) a=a+i; printf("%d\n",a); } ![图片说明](https://img-ask.csdn.net/upload/201710/15/1508049072_132357.png)

在学习线性链表类型定义的时候,发现只有结构体的定义,没有里面的内容。同时发现在C#中的命名空间中函数也是只有声明没有内容,不知道系统如何实现操作?

如下面代码片段实现结果: ~~~ //带头结点的线性链表类型定义: typedef struct LNode { ElemType date; struct LNode *next; }*Link,*Position; typedef struct{ Link head,tail; int len; }LinkList; //下面就是实现方法,但是没有实现步骤。 Status MakeNode(Link &p,ElemType e); void FreeNode(Link &p); Status InitLIst(LinkList &L); //还有部分实现方法就不一一例举了 ~~~ 然后再查看C#中的Console的内部函数时候,发现也是这样: ~~~ public static bool IsInputRedirected { get; } public static int BufferHeight { get; set; } public static int BufferWidth { get; set; } public static bool CapsLock { get; } //以上例举的是构造函数,而实现其他方法的函数与这个结构类似,只有函数定义和内部参数,没有实现函数的过程。 ~~~ 此处列举了4个构造函数,这些函数都是只有定义没有内容,没有实现方法,不知道他们是如何让计算机执行操作的,例如:Console.WriteLine("Hello,World!")这样最简单的程序。计算机是如何调用WriteLine()函数的?没有实现方法,如何输出里面的字符?

函数是在静态存储还是在堆上呢?

readprocessmemory可以通过addressof将函数地址传入么?此时函数是在静态存储还是在堆上呢?

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

int lastnum = getNum(source.getProperty("fileName")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr = new XSSFWorkbook(myxls); XSSFSheet sheet = sr.getSheetAt(0);// 第一个工作表 return sheet.getLastRowNum();// 获取第一个工作表的行数 } 第一行报错:缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

final修饰的终态变量只能在声明变量时或构造函数里赋值嘛?

class GongChengShi { final String name;//名字 final String dizhi;//地址 int age;//年龄 public GongChengShi(String name, int age) { this.name = name;//构造函数初始化时给名字和年龄赋值 this.age = age; } void setDizhi(String dizhi){//在子类中调用这里给地址赋值 this.dizhi = dizhi; } } 输出结果 ---------- javac ---------- Hello.java:36: 错误: 无法为最终变量dizhi分配值 this.dizhi = dizhi; ^ 1 个错误 我dizhi在声明变量时直接赋值可以,在构造函数里赋值也可以,但是放到普通方法里赋值就不行了。 final修饰的变量只能在声明变量时赋值或者在构造函数里赋值嘛?

Typescript声明文件中怎么做到可以静态调用接口中的函数

我在阅读commander模块的声明文件,在代码底部export导出的部分中,声明文件将一个接口导出,commander/typings/index.d.ts的代码如下 ```typescript // Type definitions for commander 2.11 // Project: https://github.com/visionmedia/commander.js // Definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped ///<reference types="node" /> declare namespace local { class Option { flags: string; required: boolean; optional: boolean; bool: boolean; short?: string; long: string; description: string; /** * Initialize a new `Option` with the given `flags` and `description`. * * @param {string} flags * @param {string} [description] */ constructor(flags: string, description?: string); } class Command extends NodeJS.EventEmitter { [key: string]: any; args: string[]; /** * Initialize a new `Command`. * * @param {string} [name] */ constructor(name?: string); /** * Set the program version to `str`. * * This method auto-registers the "-V, --version" flag * which will print the version number when passed. * * You can optionally supply the flags and description to override the defaults. * */ version(str: string, flags?: string, description?: string): Command; /** * Define a command, implemented using an action handler. * * @remarks * The command description is supplied using `.description`, not as a parameter to `.command`. * * @example * ```ts * program * .command('clone <source> [destination]') * .description('clone a repository into a newly created directory') * .action((source, destination) => { * console.log('clone command called'); * }); * ``` * * @param nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...` * @param opts - configuration options * @returns new command */ command(nameAndArgs: string, opts?: commander.CommandOptions): Command; /** * Define a command, implemented in a separate executable file. * * @remarks * The command description is supplied as the second parameter to `.command`. * * @example * ```ts * program * .command('start <service>', 'start named service') * .command('stop [service]', 'stop named serice, or all if no name supplied'); * ``` * * @param nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...` * @param description - description of executable command * @param opts - configuration options * @returns top level command for chaining more command definitions */ command(nameAndArgs: string, description: string, opts?: commander.CommandOptions): Command; /** * Define argument syntax for the top-level command. * * @param {string} desc * @returns {Command} for chaining */ arguments(desc: string): Command; /** * Parse expected `args`. * * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`. * * @param {string[]} args * @returns {Command} for chaining */ parseExpectedArgs(args: string[]): Command; /** * Register callback `fn` for the command. * * @example * program * .command('help') * .description('display verbose help') * .action(function() { * // output help here * }); * * @param {(...args: any[]) => void} fn * @returns {Command} for chaining */ action(fn: (...args: any[]) => void): Command; /** * Define option with `flags`, `description` and optional * coercion `fn`. * * The `flags` string should contain both the short and long flags, * separated by comma, a pipe or space. The following are all valid * all will output this way when `--help` is used. * * "-p, --pepper" * "-p|--pepper" * "-p --pepper" * * @example * // simple boolean defaulting to false * program.option('-p, --pepper', 'add pepper'); * * --pepper * program.pepper * // => Boolean * * // simple boolean defaulting to true * program.option('-C, --no-cheese', 'remove cheese'); * * program.cheese * // => true * * --no-cheese * program.cheese * // => false * * // required argument * program.option('-C, --chdir <path>', 'change the working directory'); * * --chdir /tmp * program.chdir * // => "/tmp" * * // optional argument * program.option('-c, --cheese [type]', 'add cheese [marble]'); * * @param {string} flags * @param {string} [description] * @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default * @param {*} [defaultValue] * @returns {Command} for chaining */ option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command; option(flags: string, description?: string, defaultValue?: any): Command; /** * Allow unknown options on the command line. * * @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options. * @returns {Command} for chaining */ allowUnknownOption(arg?: boolean): Command; /** * Parse `argv`, settings options and invoking commands when defined. * * @param {string[]} argv * @returns {Command} for chaining */ parse(argv: string[]): Command; /** * Parse options from `argv` returning `argv` void of these options. * * @param {string[]} argv * @returns {ParseOptionsResult} */ parseOptions(argv: string[]): commander.ParseOptionsResult; /** * Return an object containing options as key-value pairs * * @returns {{[key: string]: any}} */ opts(): { [key: string]: any }; /** * Set the description to `str`. * * @param {string} str * @param {{[argName: string]: string}} argsDescription * @return {(Command | string)} */ description(str: string, argsDescription?: {[argName: string]: string}): Command; description(): string; /** * Set an alias for the command. * * @param {string} alias * @return {(Command | string)} */ alias(alias: string): Command; alias(): string; /** * Set or get the command usage. * * @param {string} str * @return {(Command | string)} */ usage(str: string): Command; usage(): string; /** * Set the name of the command. * * @param {string} str * @return {Command} */ name(str: string): Command; /** * Get the name of the command. * * @return {string} */ name(): string; /** * Output help information for this command. * * When listener(s) are available for the helpLongFlag * those callbacks are invoked. * * @param {(str: string) => string} [cb] */ outputHelp(cb?: (str: string) => string): void; /** * You can pass in flags and a description to override the help * flags and help description for your command. */ helpOption(flags?: string, description?: string): Command; /** * Output help information and exit. */ help(cb?: (str: string) => string): never; } } declare namespace commander { type Command = local.Command type Option = local.Option interface CommandOptions { noHelp?: boolean; isDefault?: boolean; } interface ParseOptionsResult { args: string[]; unknown: string[]; } interface CommanderStatic extends Command { Command: typeof local.Command; Option: typeof local.Option; CommandOptions: CommandOptions; ParseOptionsResult: ParseOptionsResult; } } declare const commander: commander.CommanderStatic; export = commander; ``` 我们在调用这个库的时候是这么调用的 ```typescript import commander = require('commander'); commander.version("1.1.0").option("-d --debug","example"); ``` 为什么?导出的是一个接口,为什么能调用这些函数????具体的查看nodejs的commander包总的声明文件

stm32中可以定义2个一样名字的函数吗,比如另个NVIC_Configuration()

我现在看到的一个程序里面他一共定义了2个这个函数,一个是在main函数所在的源文件中,另一个里面的他前面加了static,加static的那个函数是不是只在那个源文件中才能被调用,而且是从定义它的地方开始,? 我可以2个都加static吗?这个函数设计到外设的优先级,定义2个函数,如果他们的优先级设置是一样的,主优先级和此优先级都是0,那么如果他们同时中断会不会有问题

C#中,用类定义类中的函数,不知道怎么理解?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Complex z1 = new Complex(73, 89); Complex z2 = new Complex(21, 16); Complex z3 = Complex.Add(z1, z2); } class Complex { public double a; public double b; public Complex(double real, double imagi) { a = real; b = imagi; } public static Complex Add(Complex z1, Complex z2) { return new Complex(z1.a + z2.a, z1.b + z2.b); } } } } 不能理解静态函数中,用自身类定义类内的函数,应该怎么理解?

请教一个静态函数的问题

A.c文件中定义了函数fun1,A.h中声明了这个函数,在B.c文件中定义了同名static静态函数,并且B文件中include了A.h,此时编译B文件是报错还是正常?

java中子类调用父类构造函数中定义的变量

package jm; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class dl extends JFrame implements ActionListener{ GridBagLayout gridbag=new GridBagLayout(); public dl(){ super("登陆界面"); setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // setLookAndFell(); setLayout(gridbag); JLabel yhm=new JLabel("用户名:"); JTextField yyhm=new JTextField(20); JLabel mmm=new JLabel("密码:"); JPasswordField mm=new JPasswordField(20); mm.setEchoChar('#'); JButton tj=new JButton("登陆"); addComponent(yhm,0,0,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.EAST); addComponent(yyhm,1,0,10,20,1,4,GridBagConstraints.NONE,GridBagConstraints.WEST); addComponent(mmm,0,1,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.EAST); addComponent(mm,1,1,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.WEST); addComponent(tj,1,40,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.WEST); pack(); setVisible(true); } public void addComponent(Component component,int gridx,int gridy,int ipadx,int ipady,int weightx,int weighty,int fill,int anchor){ GridBagConstraints constraint=new GridBagConstraints(); constraint.gridx=gridx; constraint.gridy=gridy; constraint.ipadx=ipadx; constraint.ipady=ipady; constraint.weightx=weightx; constraint.fill=fill; constraint.anchor=anchor; gridbag.setConstraints(component,constraint); add(component); } public void actionPerformed(ActionEvent event){ } public static void main(String[] arg){ dl dld=new dl(); } } ``` 父类的构造函数中定义了一个按钮tj,用来作为登录按钮,没有定义行为,准备在子类中定义 ``` package jm; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class sczj extends dl{ public sczj(){ } public void actionPerformed(ActionEvent event){ Object source=event.getSource(); if(source==super.tj){ System.out.println("其实你没有错"); //准备在这里定义tj按钮的行为,但是NETBEANS提示找不到符号tj,动行的时候也没有效果 } } public static void main(String[] arg){ new sczj(); } }

方法内部类 的 方法 为什么不能定义成static 静态的方法?

如题 方法内部类 的 方法 为什么不能定义成static 静态的方法?

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

linux2.6.1内核源码注释

包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。前后历时三年,算是干货。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

机器学习实战系列套餐(必备基础+经典算法+案例实战)

机器学习实战系列套餐以实战为出发点,帮助同学们快速掌握机器学习领域必备经典算法原理并结合Python工具包进行实战应用。建议学习顺序:1.Python必备工具包:掌握实战工具 2.机器学习算法与实战应用:数学原理与应用方法都是必备技能 3.数据挖掘实战:通过真实数据集进行项目实战。按照下列课程顺序学习即可! 课程风格通俗易懂,用最接地气的方式带领大家轻松进军机器学习!提供所有课程代码,PPT与实战数据,有任何问题欢迎随时与我讨论。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

基于STM32的电子时钟设计

时钟功能 还有闹钟功能,温湿度功能,整点报时功能 你值得拥有

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

计算机组成原理算法实现

计算机组成原理算法实现,能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码一位乘法运算和浮点数的加减运算。

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问
相关内容推荐